aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Schubert <bernd@bsbernd.com>2025-02-08 14:35:46 +0100
committerBernd Schubert <bernd@bsbernd.com>2025-02-10 16:56:45 +0100
commitc49c518f271068f4b562c6c617b6df0550a49dff (patch)
tree40a86b6de06428c7d280bb04e0cfde9e6f8499f0
parent19cb78a7e9854f6a68f0ed0a97e86df8208c4e3e (diff)
downloadlibfuse-c49c518f271068f4b562c6c617b6df0550a49dff.tar.gz
Rename to fuse_session_new_versioned
Similar previous renames to fuse_main_real_versioned, but here for the low level fuse_session_new. Also remove symbol versioned as part of "fuse_session_new" as that function is not part of the official API/ABI and to allow easier access with dlopen/dlsym. Also switch back to a macro fuse_session_new, just in case some code has some expectations on that. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
-rw-r--r--include/fuse_lowlevel.h25
-rw-r--r--lib/compat.c24
-rw-r--r--lib/fuse.c6
-rw-r--r--lib/fuse_lowlevel.c28
-rw-r--r--lib/fuse_versionscript2
5 files changed, 35 insertions, 50 deletions
diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h
index f8213ca..d0617ba 100644
--- a/include/fuse_lowlevel.h
+++ b/include/fuse_lowlevel.h
@@ -2047,18 +2047,6 @@ int fuse_parse_cmdline_312(struct fuse_args *args,
#endif
#endif
-/* Do not call this directly, but only through fuse_session_new() */
-#if (!defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
-struct fuse_session *
-_fuse_session_new_317(struct fuse_args *args,
- const struct fuse_lowlevel_ops *op,
- size_t op_size,
- struct libfuse_version *version,
- void *userdata);
-#define _fuse_session_new(args, op, op_size, version, userdata) \
- _fuse_session_new_317(args, op, op_size, version, userdata)
-#endif
-
/**
* Create a low level session.
*
@@ -2088,10 +2076,8 @@ _fuse_session_new_317(struct fuse_args *args,
* @return the fuse session on success, NULL on failure
**/
static inline struct fuse_session *
-fuse_session_new(struct fuse_args *args,
- const struct fuse_lowlevel_ops *op,
- size_t op_size,
- void *userdata)
+fuse_session_new_fn(struct fuse_args *args, const struct fuse_lowlevel_ops *op,
+ size_t op_size, void *userdata)
{
struct libfuse_version version = {
.major = FUSE_MAJOR_VERSION,
@@ -2101,13 +2087,16 @@ fuse_session_new(struct fuse_args *args,
};
/* not declared globally, to restrict usage of this function */
- struct fuse_session *_fuse_session_new(
+ struct fuse_session *fuse_session_new_versioned(
struct fuse_args *args, const struct fuse_lowlevel_ops *op,
size_t op_size, struct libfuse_version *version,
void *userdata);
- return _fuse_session_new(args, op, op_size, &version, userdata);
+ return fuse_session_new_versioned(args, op, op_size, &version,
+ userdata);
}
+#define fuse_session_new(args, op, op_size, userdata) \
+ fuse_session_new_fn(args, op, op_size, userdata)
/*
* This should mostly not be called directly, but instead the
diff --git a/lib/compat.c b/lib/compat.c
index 6852299..b98ca4b 100644
--- a/lib/compat.c
+++ b/lib/compat.c
@@ -60,6 +60,18 @@ int fuse_session_custom_io(struct fuse_session *se,
return fuse_session_custom_io_30(se, io, fd);
}
+#endif /* LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS */
+
+int fuse_main_real_30(int argc, char *argv[], const struct fuse_operations *op,
+ size_t op_size, void *user_data);
+int fuse_main_real(int argc, char *argv[], const struct fuse_operations *op,
+ size_t op_size, void *user_data);
+int fuse_main_real(int argc, char *argv[], const struct fuse_operations *op,
+ size_t op_size, void *user_data)
+{
+ return fuse_main_real_30(argc, argv, op, op_size, user_data);
+}
+
struct fuse_session *fuse_session_new_30(struct fuse_args *args,
const struct fuse_lowlevel_ops *op,
size_t op_size, void *userdata);
@@ -72,15 +84,3 @@ struct fuse_session *fuse_session_new(struct fuse_args *args,
{
return fuse_session_new_30(args, op, op_size, userdata);
}
-
-#endif /* LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS */
-
-int fuse_main_real_30(int argc, char *argv[], const struct fuse_operations *op,
- size_t op_size, void *user_data);
-int fuse_main_real(int argc, char *argv[], const struct fuse_operations *op,
- size_t op_size, void *user_data);
-int fuse_main_real(int argc, char *argv[], const struct fuse_operations *op,
- size_t op_size, void *user_data)
-{
- return fuse_main_real_30(argc, argv, op, op_size, user_data);
-}
diff --git a/lib/fuse.c b/lib/fuse.c
index 5d57d24..0b04f47 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -5014,12 +5014,12 @@ struct fuse *_fuse_new_317(struct fuse_args *args,
#endif
/* not declared globally, to restrict usage of this function */
- struct fuse_session *_fuse_session_new(
+ struct fuse_session *fuse_session_new_versioned(
struct fuse_args *args, const struct fuse_lowlevel_ops *op,
size_t op_size, struct libfuse_version *version,
void *userdata);
-
- f->se = _fuse_session_new(args, &llop, sizeof(llop), version, f);
+ f->se = fuse_session_new_versioned(args, &llop, sizeof(llop), version,
+ f);
if (f->se == NULL)
goto out_free_fs;
diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c
index 840142b..e3e79d5 100644
--- a/lib/fuse_lowlevel.c
+++ b/lib/fuse_lowlevel.c
@@ -3244,17 +3244,14 @@ int fuse_session_receive_buf_internal(struct fuse_session *se,
return _fuse_session_receive_buf(se, buf, ch, true);
}
-FUSE_SYMVER("_fuse_session_new_317", "_fuse_session_new@@FUSE_3.17")
-struct fuse_session *_fuse_session_new_317(struct fuse_args *args,
- const struct fuse_lowlevel_ops *op,
- size_t op_size,
- struct libfuse_version *version,
- void *userdata);
-struct fuse_session *_fuse_session_new_317(struct fuse_args *args,
- const struct fuse_lowlevel_ops *op,
- size_t op_size,
- struct libfuse_version *version,
- void *userdata)
+struct fuse_session *
+fuse_session_new_versioned(struct fuse_args *args,
+ const struct fuse_lowlevel_ops *op, size_t op_size,
+ struct libfuse_version *version, void *userdata);
+struct fuse_session *
+fuse_session_new_versioned(struct fuse_args *args,
+ const struct fuse_lowlevel_ops *op, size_t op_size,
+ struct libfuse_version *version, void *userdata)
{
int err;
struct fuse_session *se;
@@ -3355,10 +3352,8 @@ out1:
}
struct fuse_session *fuse_session_new_30(struct fuse_args *args,
- const struct fuse_lowlevel_ops *op,
- size_t op_size,
- void *userdata);
-FUSE_SYMVER("fuse_session_new_30", "fuse_session_new@FUSE_3.0")
+ const struct fuse_lowlevel_ops *op,
+ size_t op_size, void *userdata);
struct fuse_session *fuse_session_new_30(struct fuse_args *args,
const struct fuse_lowlevel_ops *op,
size_t op_size,
@@ -3367,7 +3362,8 @@ struct fuse_session *fuse_session_new_30(struct fuse_args *args,
/* unknown version */
struct libfuse_version version = { 0 };
- return _fuse_session_new_317(args, op, op_size, &version, userdata);
+ return fuse_session_new_versioned(args, op, op_size, &version,
+ userdata);
}
FUSE_SYMVER("fuse_session_custom_io_317", "fuse_session_custom_io@@FUSE_3.17")
diff --git a/lib/fuse_versionscript b/lib/fuse_versionscript
index b31453b..2d314c0 100644
--- a/lib/fuse_versionscript
+++ b/lib/fuse_versionscript
@@ -190,8 +190,8 @@ FUSE_3.12 {
FUSE_3.17 {
global:
fuse_main_real_versioned;
+ fuse_session_new_versioned;
#if !defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS)
- _fuse_session_new_317;
_fuse_new_317;
#endif
fuse_passthrough_open;