/* FUSE: Filesystem in Userspace Copyright (C) 2001-2007 Miklos Szeredi 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_lowlevel.h" struct fuse_chan *fuse_mount(const char *mountpoint, struct fuse_args *args) { struct fuse_chan *ch; int fd; #ifdef __SOLARIS__ /* * Make sure file descriptors 0, 1 and 2 are open, otherwise chaos * would ensue. */ do { fd = open("/dev/null", O_RDWR); if (fd > 2) close(fd); } while (fd >= 0 && fd <= 2); #endif /* __SOLARIS__ */ fd = fuse_kern_mount(mountpoint, args); if (fd == -1) return NULL; ch = fuse_kern_chan_new(fd); if (!ch) fuse_kern_unmount(mountpoint, fd); return ch; } void fuse_unmount(const char *mountpoint, struct fuse_chan *ch) { int fd = ch ? fuse_chan_fd(ch) : -1; fuse_kern_unmount(mountpoint, fd); fuse_chan_destroy(ch); } int fuse_version(void) { return FUSE_VERSION; } #ifdef __SOLARIS__ #undef fuse_main int fuse_main(void); int fuse_main(void) { fprintf(stderr, "fuse_main(): This function does not exist\n"); return -1; } #endif /* __SOLARIS__ */