cleanup
diff --git a/lib/fuse.c b/lib/fuse.c
index b93ded3..79ce5e7 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -6,7 +6,12 @@
     See the file COPYING.LIB
 */
 
-#include "fuse_i.h"
+
+/* For pthread_rwlock_t */
+#define _GNU_SOURCE
+
+#include "fuse.h"
+#include "fuse_lowlevel.h"
 #include "fuse_compat.h"
 
 #include <stdio.h>
@@ -17,6 +22,7 @@
 #include <errno.h>
 #include <assert.h>
 #include <stdint.h>
+#include <pthread.h>
 #include <sys/param.h>
 #include <sys/uio.h>
 
@@ -53,6 +59,26 @@
 #define ENTRY_REVALIDATE_TIME 1.0 /* sec */
 #define ATTR_REVALIDATE_TIME 1.0 /* sec */
 
+struct fuse {
+    struct fuse_ll *fll;
+    int flags;
+    struct fuse_operations op;
+    int compat;
+    struct node **name_table;
+    size_t name_table_size;
+    struct node **id_table;
+    size_t id_table_size;
+    fuse_ino_t ctr;
+    unsigned int generation;
+    unsigned int hidectr;
+    pthread_mutex_t lock;
+    pthread_rwlock_t tree_lock;
+    void *user_data;
+    uid_t uid;
+    gid_t gid;
+    mode_t umask;
+};
+
 struct node {
     struct node *name_next;
     struct node *id_next;
@@ -1626,6 +1652,11 @@
     fuse_getcontext = func;
 }
 
+struct fuse_ll *fuse_get_lowlevel(struct fuse *f)
+{
+    return f->fll;
+}
+
 static int begins_with(const char *s, const char *beg)
 {
     if (strncmp(s, beg, strlen(beg)) == 0)