From db0566701e757654cebb4ce232b57ffe707f91bc Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Mon, 13 Mar 2017 12:30:25 -0700 Subject: [PATCH] dll: fuse: add fuse_* symbols for programs using FFI --- build/VStudio/winfsp_dll.vcxproj | 1 + build/VStudio/winfsp_dll.vcxproj.filters | 3 ++ src/dll/fuse/fuse_compat.c | 35 ++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 src/dll/fuse/fuse_compat.c diff --git a/build/VStudio/winfsp_dll.vcxproj b/build/VStudio/winfsp_dll.vcxproj index f379c402..aa5087cb 100644 --- a/build/VStudio/winfsp_dll.vcxproj +++ b/build/VStudio/winfsp_dll.vcxproj @@ -34,6 +34,7 @@ + diff --git a/build/VStudio/winfsp_dll.vcxproj.filters b/build/VStudio/winfsp_dll.vcxproj.filters index 20e69b7a..ad42357b 100644 --- a/build/VStudio/winfsp_dll.vcxproj.filters +++ b/build/VStudio/winfsp_dll.vcxproj.filters @@ -106,6 +106,9 @@ Source + + Source\fuse + diff --git a/src/dll/fuse/fuse_compat.c b/src/dll/fuse/fuse_compat.c new file mode 100644 index 00000000..cde37693 --- /dev/null +++ b/src/dll/fuse/fuse_compat.c @@ -0,0 +1,35 @@ +/** + * @file dll/fuse/fuse_compat.c + * + * @copyright 2015-2017 Bill Zissimopoulos + */ +/* + * This file is part of WinFsp. + * + * You can redistribute it and/or modify it under the terms of the GNU + * General Public License version 3 as published by the Free Software + * Foundation. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * software. + */ + +#include + +/* + * This file provides an implementation of the `fuse_*` symbols. This + * implementation is a simple shim that forwards `fuse_*` calls to the + * equivalent `fsp_fuse_*` ones using a default `fsp_fuse_env`. + * + * These symbols should *not* be used by C/C++ programs. For this reason + * the `fuse.h` headers only expose the `fsp_fuse_*` symbols, wrapped + * with macros. These symbols are for use only from programs using FFI + * technology to access FUSE symbols (e.g. fusepy, jnr-fuse). + */ + +#define FSP_FUSE_API +#define FSP_FUSE_SYM(proto, ...) __declspec(dllexport) proto { __VA_ARGS__ } +#include +#include +#include