Merged fuse_session.c into fuse_lowlevel.c
authorNikolaus Rath <Nikolaus@rath.org>
Mon, 3 Oct 2016 04:22:02 +0000 (21:22 -0700)
committerNikolaus Rath <Nikolaus@rath.org>
Mon, 3 Oct 2016 04:24:43 +0000 (21:24 -0700)
This distinction no longer makes sens. fuse_lowlevel.c already contains
several session related functions, and fuse_session.c contains various
stuff that is more related to the channel interface.

lib/Makefile.am
lib/fuse_lowlevel.c
lib/fuse_session.c [deleted file]

index 1d50b0ee12f562c95e83e06bf64d16e607a71057..69e9dc5fbd0e364086901569be0f686ac8ffbb9f 100644 (file)
@@ -17,7 +17,7 @@ else
 iconv_source =
 endif
 
-libfuse3_la_SOURCES =          \
+libfuse3_la_SOURCES =          \
        fuse.c                  \
        fuse_i.h                \
        fuse_loop.c             \
@@ -25,7 +25,6 @@ libfuse3_la_SOURCES =                 \
        fuse_lowlevel.c         \
        fuse_misc.h             \
        fuse_opt.c              \
-       fuse_session.c          \
        fuse_signals.c          \
        buffer.c                \
        cuse_lowlevel.c         \
index 8ccc733003007392e4171c4fd18090568f224d23..368ac71047784c39b2329cbc11e299e53fe4200e 100644 (file)
@@ -3055,3 +3055,97 @@ int fuse_req_getgroups(fuse_req_t req, int size, gid_t list[])
        return -ENOSYS;
 }
 #endif
+
+void fuse_session_add_chan(struct fuse_session *se, struct fuse_chan *ch)
+{
+       assert(se->ch == NULL);
+       assert(ch->se == NULL);
+       se->ch = ch;
+       ch->se = se;
+}
+
+void fuse_session_remove_chan(struct fuse_chan *ch)
+{
+       struct fuse_session *se = ch->se;
+       if (se) {
+               assert(se->ch == ch);
+               se->ch = NULL;
+               ch->se = NULL;
+       }
+}
+
+struct fuse_chan *fuse_session_chan(struct fuse_session *se)
+{
+       return se->ch;
+}
+
+int fuse_chan_clearfd(struct fuse_chan *ch)
+{
+       int fd = ch->fd;
+       ch->fd = -1;
+       return fd;
+}
+
+void fuse_session_exit(struct fuse_session *se)
+{
+       se->exited = 1;
+}
+
+void fuse_session_reset(struct fuse_session *se)
+{
+       se->exited = 0;
+}
+
+int fuse_session_exited(struct fuse_session *se)
+{
+       return se->exited;
+}
+
+struct fuse_chan *fuse_chan_new(int fd)
+{
+       struct fuse_chan *ch = (struct fuse_chan *) malloc(sizeof(*ch));
+       if (ch == NULL) {
+               fprintf(stderr, "fuse: failed to allocate channel\n");
+               return NULL;
+       }
+
+       memset(ch, 0, sizeof(*ch));
+       ch->fd = fd;
+       ch->ctr = 1;
+       fuse_mutex_init(&ch->lock);
+
+       return ch;
+}
+
+struct fuse_session *fuse_chan_session(struct fuse_chan *ch)
+{
+       return ch->se;
+}
+
+struct fuse_chan *fuse_chan_get(struct fuse_chan *ch)
+{
+       assert(ch->ctr > 0);
+       pthread_mutex_lock(&ch->lock);
+       ch->ctr++;
+       pthread_mutex_unlock(&ch->lock);
+
+       return ch;
+}
+
+void fuse_chan_put(struct fuse_chan *ch)
+{
+       if (ch) {
+               pthread_mutex_lock(&ch->lock);
+               ch->ctr--;
+               if (!ch->ctr) {
+                       pthread_mutex_unlock(&ch->lock);
+                       fuse_session_remove_chan(ch);
+                       fuse_chan_close(ch);
+                       pthread_mutex_destroy(&ch->lock);
+                       free(ch);
+               } else {
+                       pthread_mutex_unlock(&ch->lock);
+               }
+
+       }
+}
diff --git a/lib/fuse_session.c b/lib/fuse_session.c
deleted file mode 100644 (file)
index cdf20f7..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
-  FUSE: Filesystem in Userspace
-  Copyright (C) 2001-2007  Miklos Szeredi <miklos@szeredi.hu>
-
-  This program can be distributed under the terms of the GNU LGPLv2.
-  See the file COPYING.LIB
-*/
-
-#include "config.h"
-#include "fuse_i.h"
-#include "fuse_misc.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <errno.h>
-
-
-void fuse_session_add_chan(struct fuse_session *se, struct fuse_chan *ch)
-{
-       assert(se->ch == NULL);
-       assert(ch->se == NULL);
-       se->ch = ch;
-       ch->se = se;
-}
-
-void fuse_session_remove_chan(struct fuse_chan *ch)
-{
-       struct fuse_session *se = ch->se;
-       if (se) {
-               assert(se->ch == ch);
-               se->ch = NULL;
-               ch->se = NULL;
-       }
-}
-
-struct fuse_chan *fuse_session_chan(struct fuse_session *se)
-{
-       return se->ch;
-}
-
-int fuse_chan_clearfd(struct fuse_chan *ch)
-{
-       int fd = ch->fd;
-       ch->fd = -1;
-       return fd;
-}
-
-void fuse_session_exit(struct fuse_session *se)
-{
-       se->exited = 1;
-}
-
-void fuse_session_reset(struct fuse_session *se)
-{
-       se->exited = 0;
-}
-
-int fuse_session_exited(struct fuse_session *se)
-{
-       return se->exited;
-}
-
-struct fuse_chan *fuse_chan_new(int fd)
-{
-       struct fuse_chan *ch = (struct fuse_chan *) malloc(sizeof(*ch));
-       if (ch == NULL) {
-               fprintf(stderr, "fuse: failed to allocate channel\n");
-               return NULL;
-       }
-
-       memset(ch, 0, sizeof(*ch));
-       ch->fd = fd;
-       ch->ctr = 1;
-       fuse_mutex_init(&ch->lock);
-
-       return ch;
-}
-
-struct fuse_session *fuse_chan_session(struct fuse_chan *ch)
-{
-       return ch->se;
-}
-
-struct fuse_chan *fuse_chan_get(struct fuse_chan *ch)
-{
-       assert(ch->ctr > 0);
-       pthread_mutex_lock(&ch->lock);
-       ch->ctr++;
-       pthread_mutex_unlock(&ch->lock);
-
-       return ch;
-}
-
-void fuse_chan_put(struct fuse_chan *ch)
-{
-       if (ch) {
-               pthread_mutex_lock(&ch->lock);
-               ch->ctr--;
-               if (!ch->ctr) {
-                       pthread_mutex_unlock(&ch->lock);
-                       fuse_session_remove_chan(ch);
-                       fuse_chan_close(ch);
-                       pthread_mutex_destroy(&ch->lock);
-                       free(ch);
-               } else {
-                       pthread_mutex_unlock(&ch->lock);
-               }
-
-       }
-}