diff options
Diffstat (limited to 'example-22')
-rw-r--r-- | example-22/.gitignore | 3 | ||||
-rw-r--r-- | example-22/Makefile.am | 10 | ||||
-rw-r--r-- | example-22/fusexmp.c | 351 | ||||
-rw-r--r-- | example-22/fusexmp.c.patch | 16 | ||||
-rw-r--r-- | example-22/hello.c | 90 | ||||
-rw-r--r-- | example-22/null.c | 78 |
6 files changed, 0 insertions, 548 deletions
diff --git a/example-22/.gitignore b/example-22/.gitignore deleted file mode 100644 index 0c424667b..000000000 --- a/example-22/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -fusexmp -hello -null diff --git a/example-22/Makefile.am b/example-22/Makefile.am deleted file mode 100644 index 902910dca..000000000 --- a/example-22/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -## Process this file with automake to produce Makefile.in - -noinst_PROGRAMS = fusexmp null hello - -fusexmp_SOURCES = fusexmp.c -null_SOURCES = null.c -hello_SOURCES = hello.c - -LDADD = ../src/libfuse.la -AM_CPPFLAGS = -DFUSE_USE_VERSION=22 -I$(top_srcdir) -I$(top_srcdir)/include diff --git a/example-22/fusexmp.c b/example-22/fusexmp.c deleted file mode 100644 index 90f3018b4..000000000 --- a/example-22/fusexmp.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - FUSE: Filesystem in Userspace - Copyright (C) 2001-2005 Miklos Szeredi <miklos@szeredi.hu> - - This program can be distributed under the terms of the GNU GPL. - See the file COPYING. -*/ - -#include <config.h> - -#ifdef linux -/* For pread()/pwrite() */ -#define _XOPEN_SOURCE 500 -#endif - -#include <fuse.h> -#include <stdio.h> -#include <string.h> -#include <unistd.h> -#include <fcntl.h> -#include <dirent.h> -#include <errno.h> -#include <sys/statfs.h> -#ifdef HAVE_SETXATTR -#include <sys/xattr.h> -#endif - -static int xmp_getattr(const char *path, struct stat *stbuf) -{ - int res; - - res = lstat(path, stbuf); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_readlink(const char *path, char *buf, size_t size) -{ - int res; - - res = readlink(path, buf, size - 1); - if(res == -1) - return -errno; - - buf[res] = '\0'; - return 0; -} - - -static int xmp_getdir(const char *path, fuse_dirh_t h, fuse_dirfil_t filler) -{ - DIR *dp; - struct dirent *de; - int res = 0; - - dp = opendir(path); - if(dp == NULL) - return -errno; - - while((de = readdir(dp)) != NULL) { - res = filler(h, de->d_name, de->d_type, de->d_ino); - if(res != 0) - break; - } - - closedir(dp); - return res; -} - -static int xmp_mknod(const char *path, mode_t mode, dev_t rdev) -{ - int res; - - /* On the Hurd we must not use mknod() to create files, but creat() */ - if(mode & S_IFREG) - res = creat(path, mode & ALLPERMS); - else - res = mknod(path, mode, rdev); - - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_mkdir(const char *path, mode_t mode) -{ - int res; - - res = mkdir(path, mode); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_unlink(const char *path) -{ - int res; - - res = unlink(path); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_rmdir(const char *path) -{ - int res; - - res = rmdir(path); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_symlink(const char *from, const char *to) -{ - int res; - - res = symlink(from, to); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_rename(const char *from, const char *to) -{ - int res; - - res = rename(from, to); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_link(const char *from, const char *to) -{ - int res; - - res = link(from, to); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_chmod(const char *path, mode_t mode) -{ - int res; - - res = chmod(path, mode); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_chown(const char *path, uid_t uid, gid_t gid) -{ - int res; - - res = lchown(path, uid, gid); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_truncate(const char *path, off_t size) -{ - int res; - - res = truncate(path, size); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_utime(const char *path, struct utimbuf *buf) -{ - int res; - - res = utime(path, buf); - if(res == -1) - return -errno; - - return 0; -} - - -static int xmp_open(const char *path, struct fuse_file_info *fi) -{ - int res; - - res = open(path, fi->flags); - if(res == -1) - return -errno; - - close(res); - return 0; -} - -static int xmp_read(const char *path, char *buf, size_t size, off_t offset, - struct fuse_file_info *fi) -{ - int fd; - int res; - - (void) fi; - fd = open(path, O_RDONLY); - if(fd == -1) - return -errno; - - res = pread(fd, buf, size, offset); - if(res == -1) - res = -errno; - - close(fd); - return res; -} - -static int xmp_write(const char *path, const char *buf, size_t size, - off_t offset, struct fuse_file_info *fi) -{ - int fd; - int res; - - (void) fi; - fd = open(path, O_WRONLY); - if(fd == -1) - return -errno; - - res = pwrite(fd, buf, size, offset); - if(res == -1) - res = -errno; - - close(fd); - return res; -} - -static int xmp_statfs(const char *path, struct statfs *stbuf) -{ - int res; - - res = statfs(path, stbuf); - if(res == -1) - return -errno; - - return 0; -} - -static int xmp_release(const char *path, struct fuse_file_info *fi) -{ - /* Just a stub. This method is optional and can safely be left - unimplemented */ - - (void) path; - (void) fi; - return 0; -} - -static int xmp_fsync(const char *path, int isdatasync, - struct fuse_file_info *fi) -{ - /* Just a stub. This method is optional and can safely be left - unimplemented */ - - (void) path; - (void) isdatasync; - (void) fi; - return 0; -} - -#ifdef HAVE_SETXATTR -/* xattr operations are optional and can safely be left unimplemented */ -static int xmp_setxattr(const char *path, const char *name, const char *value, - size_t size, int flags) -{ - int res = lsetxattr(path, name, value, size, flags); - if(res == -1) - return -errno; - return 0; -} - -static int xmp_getxattr(const char *path, const char *name, char *value, - size_t size) -{ - int res = lgetxattr(path, name, value, size); - if(res == -1) - return -errno; - return res; -} - -static int xmp_listxattr(const char *path, char *list, size_t size) -{ - int res = llistxattr(path, list, size); - if(res == -1) - return -errno; - return res; -} - -static int xmp_removexattr(const char *path, const char *name) -{ - int res = lremovexattr(path, name); - if(res == -1) - return -errno; - return 0; -} -#endif /* HAVE_SETXATTR */ - -static struct fuse_operations xmp_oper = { - .getattr = xmp_getattr, - .readlink = xmp_readlink, - .getdir = xmp_getdir, - .mknod = xmp_mknod, - .mkdir = xmp_mkdir, - .symlink = xmp_symlink, - .unlink = xmp_unlink, - .rmdir = xmp_rmdir, - .rename = xmp_rename, - .link = xmp_link, - .chmod = xmp_chmod, - .chown = xmp_chown, - .truncate = xmp_truncate, - .utime = xmp_utime, - .open = xmp_open, - .read = xmp_read, - .write = xmp_write, - .statfs = xmp_statfs, - .release = xmp_release, - .fsync = xmp_fsync, -#ifdef HAVE_SETXATTR - .setxattr = xmp_setxattr, - .getxattr = xmp_getxattr, - .listxattr = xmp_listxattr, - .removexattr= xmp_removexattr, -#endif -}; - -int main(int argc, char *argv[]) -{ - return fuse_main(argc, argv, &xmp_oper); -} diff --git a/example-22/fusexmp.c.patch b/example-22/fusexmp.c.patch deleted file mode 100644 index be5586e88..000000000 --- a/example-22/fusexmp.c.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- ../../fuse-0-branch-2.2/example/fusexmp.c 2005-11-17 16:29:01.000000000 +0100 -+++ fusexmp.c 2005-03-27 15:48:53.000000000 +0200 -@@ -73,7 +73,12 @@ - { - int res; - -- res = mknod(path, mode, rdev); -+ /* On the Hurd we must not use mknod() to create files, but creat() */ -+ if(mode & S_IFREG) -+ res = creat(path, mode & ALLPERMS); -+ else -+ res = mknod(path, mode, rdev); -+ - if(res == -1) - return -errno; - diff --git a/example-22/hello.c b/example-22/hello.c deleted file mode 100644 index 9e4099b33..000000000 --- a/example-22/hello.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - FUSE: Filesystem in Userspace - Copyright (C) 2001-2005 Miklos Szeredi <miklos@szeredi.hu> - - This program can be distributed under the terms of the GNU GPL. - See the file COPYING. -*/ - -#include <fuse.h> -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <fcntl.h> - -static const char *hello_str = "Hello World!\n"; -static const char *hello_path = "/hello"; - -static int hello_getattr(const char *path, struct stat *stbuf) -{ - int res = 0; - - memset(stbuf, 0, sizeof(struct stat)); - if(strcmp(path, "/") == 0) { - stbuf->st_mode = S_IFDIR | 0755; - stbuf->st_nlink = 2; - } - else if(strcmp(path, hello_path) == 0) { - stbuf->st_mode = S_IFREG | 0444; - stbuf->st_nlink = 1; - stbuf->st_size = strlen(hello_str); - } - else - res = -ENOENT; - - return res; -} - -static int hello_getdir(const char *path, fuse_dirh_t h, fuse_dirfil_t filler) -{ - if(strcmp(path, "/") != 0) - return -ENOENT; - - filler(h, ".", 0, 0); - filler(h, "..", 0, 0); - filler(h, hello_path + 1, 0, 0); - - return 0; -} - -static int hello_open(const char *path, struct fuse_file_info *fi) -{ - if(strcmp(path, hello_path) != 0) - return -ENOENT; - - if((fi->flags & 3) != O_RDONLY) - return -EACCES; - - return 0; -} - -static int hello_read(const char *path, char *buf, size_t size, off_t offset, - struct fuse_file_info *fi) -{ - size_t len; - (void) fi; - if(strcmp(path, hello_path) != 0) - return -ENOENT; - - len = strlen(hello_str); - if (offset < len) { - if (offset + size > len) - size = len - offset; - memcpy(buf, hello_str + offset, size); - } else - size = 0; - - return size; -} - -static struct fuse_operations hello_oper = { - .getattr = hello_getattr, - .getdir = hello_getdir, - .open = hello_open, - .read = hello_read, -}; - -int main(int argc, char *argv[]) -{ - return fuse_main(argc, argv, &hello_oper); -} diff --git a/example-22/null.c b/example-22/null.c deleted file mode 100644 index d58feabb2..000000000 --- a/example-22/null.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - FUSE: Filesystem in Userspace - Copyright (C) 2001-2005 Miklos Szeredi <miklos@szeredi.hu> - - This program can be distributed under the terms of the GNU GPL. - See the file COPYING. -*/ - -#include <fuse.h> -#include <string.h> -#include <unistd.h> -#include <time.h> -#include <errno.h> - -#define UNUSED(x) x __attribute__((unused)) - -static int null_getattr(const char *path, struct stat *stbuf) -{ - if(strcmp(path, "/") != 0) - return -ENOENT; - - stbuf->st_mode = S_IFREG | 0644; - stbuf->st_nlink = 1; - stbuf->st_uid = getuid(); - stbuf->st_gid = getgid(); - stbuf->st_size = (1ULL << 32); /* 4G */ - stbuf->st_blocks = 0; - stbuf->st_atime = stbuf->st_mtime = stbuf->st_ctime = time(NULL); - - return 0; -} - -static int null_truncate(const char *path, off_t UNUSED(size)) -{ - if(strcmp(path, "/") != 0) - return -ENOENT; - - return 0; -} - -static int null_open(const char *path, struct fuse_file_info *UNUSED(fi)) -{ - if(strcmp(path, "/") != 0) - return -ENOENT; - - return 0; -} - -static int null_read(const char *path, char *UNUSED(buf), size_t size, - off_t UNUSED(offset), struct fuse_file_info *UNUSED(fi)) -{ - if(strcmp(path, "/") != 0) - return -ENOENT; - - return size; -} - -static int null_write(const char *path, const char *UNUSED(buf), size_t size, - off_t UNUSED(offset), struct fuse_file_info *UNUSED(fi)) -{ - if(strcmp(path, "/") != 0) - return -ENOENT; - - return size; -} - -static struct fuse_operations null_oper = { - .getattr = null_getattr, - .truncate = null_truncate, - .open = null_open, - .read = null_read, - .write = null_write, -}; - -int main(int argc, char *argv[]) -{ - return fuse_main(argc, argv, &null_oper); -} |