about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-04-26 18:35:28 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-04-26 18:35:28 +0200
commitbb22be4f4f59c3584798825de5deb270d39bd1f2 (patch)
tree65d364b0ab4b8879408fd8cfe6d8b0992e3287c1 /src
parentfab4c72285fc7f0597d74fa80ef6863d257822b8 (diff)
downloadbox64-bb22be4f4f59c3584798825de5deb270d39bd1f2.tar.gz
box64-bb22be4f4f59c3584798825de5deb270d39bd1f2.zip
Added some libfuse wrapping (AppImage is not working yet)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h2
-rwxr-xr-xsrc/wrapped/wrappedlibfuse.c10
-rwxr-xr-xsrc/wrapped/wrappedlibfuse_private.h12
3 files changed, 12 insertions, 12 deletions
diff --git a/src/library_list.h b/src/library_list.h
index 4352e793..70d10f26 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -166,7 +166,7 @@ GO("libkrb5.so.3", krb5)
 GO("libgssapi_krb5.so.2", gssapikrb5)
 GO("libgssapi.so.3", gssapi)
 //GO("libtiff.so.5", libtiff)
-//GO("libfuse.so.2", libfuse)
+GO("libfuse.so.2", libfuse)
 GO("libnss3.so", nss3)
 GO("libnssutil3.so", nssutil3)
 GO("libsmime3.so", smime3)
diff --git a/src/wrapped/wrappedlibfuse.c b/src/wrapped/wrappedlibfuse.c
index c87559e4..aa07a595 100755
--- a/src/wrapped/wrappedlibfuse.c
+++ b/src/wrapped/wrappedlibfuse.c
@@ -90,10 +90,10 @@ GO(3)
 
 // fuse_opt_proc
 #define GO(A)   \
-static uintptr_t my_fuse_opt_proc_fct_##A = 0;                              \
-static int my_fuse_opt_proc_##A(void* a, void* b, int c, void* d)           \
-{                                                                           \
-    return RunFunction(my_context, my_fuse_opt_proc_fct_##A, 4, a, b, c, d);\
+static uintptr_t my_fuse_opt_proc_fct_##A = 0;                                      \
+static int my_fuse_opt_proc_##A(void* a, void* b, int c, void* d)                   \
+{                                                                                   \
+    return (int)RunFunction(my_context, my_fuse_opt_proc_fct_##A, 4, a, b, c, d);   \
 }
 SUPER()
 #undef GO
@@ -907,7 +907,7 @@ EXPORT void* my_fuse_lowlevel_new(x64emu_t* emu, void* args, fuse_lowlevel_ops_t
 {
     libfuse_my_t *my = (libfuse_my_t*)my_lib->priv.w.p2;
     static fuse_lowlevel_ops_t o_;
-    #define GO(A) o_.A = find_##A##_Fct(o->A)
+    #define GO(A) o_.A = find_##A##_Fct(o->A); if(o_.A) printf_log(LOG_DEBUG, "fuse: %s is present\n", #A)
     GO(init);
     GO(destroy);
     GO(lookup);
diff --git a/src/wrapped/wrappedlibfuse_private.h b/src/wrapped/wrappedlibfuse_private.h
index b597de26..ed920263 100755
--- a/src/wrapped/wrappedlibfuse_private.h
+++ b/src/wrapped/wrappedlibfuse_private.h
@@ -127,16 +127,16 @@ GO(fuse_remove_signal_handlers, vFp)
 //GO(fuse_reply_buf, 
 //GO(fuse_reply_create, 
 //GO(fuse_reply_data, 
-//GO(fuse_reply_entry, 
-//GO(fuse_reply_err, 
+GO(fuse_reply_entry, iFpp)
+GO(fuse_reply_err, iFpi)
 //GO(fuse_reply_ioctl, 
 //GO(fuse_reply_ioctl_iov, 
 //GO(fuse_reply_ioctl_retry, 
 //GO(fuse_reply_iov, 
 //GO(fuse_reply_lock, 
 //GO(fuse_reply_none, 
-//GO(fuse_reply_open, 
-//GO(fuse_reply_open_compat, 
+GO(fuse_reply_open, iFpp)
+GO(fuse_reply_open_compat, iFpp)
 //GO(fuse_reply_poll, 
 //GO(fuse_reply_readlink, 
 //GO(fuse_reply_statfs, 
@@ -147,7 +147,7 @@ GO(fuse_remove_signal_handlers, vFp)
 //GO(fuse_req_getgroups, 
 //GO(fuse_req_interrupted, 
 //GO(fuse_req_interrupt_func, 
-//GO(fuse_req_userdata, 
+GO(fuse_req_userdata, pFp)
 GO(fuse_session_add_chan, vFpp)
 //GO(fuse_session_data, 
 GO(fuse_session_destroy, vFp)
@@ -174,6 +174,6 @@ GO(fuse_set_signal_handlers, iFp)
 //GO(__fuse_teardown, 
 //GO(fuse_teardown, 
 //GO(fuse_teardown_compat22, 
-//GO(fuse_unmount, 
+GO(fuse_unmount, vFpp)
 //GO(fuse_unmount_compat22, 
 //GO(fuse_version,