summaryrefslogtreecommitdiff
path: root/example-26/null.c
diff options
context:
space:
mode:
authorPino Toscano <toscano.pino@tiscali.it>2013-03-23 14:21:25 +0100
committerPino Toscano <toscano.pino@tiscali.it>2013-03-23 14:21:25 +0100
commit3f5e67633de9c07f99967edf00bf9a3efdc65f62 (patch)
tree04ad6945e67526a697fe70550843b167f85e07a6 /example-26/null.c
parentaa1e153d4763f08774af6c5d8bb28769d5e77201 (diff)
Synchronize headers, examples and version script with FUSE 2.6.5
Update the headers from FUSE 2.6.5, import the examples and update the version script. This temporarly breaks compilation. * configure.ac (AC_CONFIG_FILES): Add example-26/Makefile. * example-26/.gitignore: New file. * example-26/Makefile.am: Likewise. * example-26/fusexmp.c: Likewise. * example-26/fusexmp_fh.c: Likewise. * example-26/hello.c: Likewise. * example-26/hello_ll.c: Likewise. * example-26/null.c: Likewise. * include/Makefile.am (fuseinclude_HEADERS): Add fuse_common_compat.h. * include/fuse.h: Update from FUSE 2.6.5. * include/fuse_common.h: Likewise. * include/fuse_compat.h: Likewise. * include/fuse_opt.h: Likewise. * include/fuse_common_compat.h: Import from FUSE 2.6.5. * Update from FUSE 2.6.5.
Diffstat (limited to 'example-26/null.c')
-rw-r--r--example-26/null.c92
1 files changed, 92 insertions, 0 deletions
diff --git a/example-26/null.c b/example-26/null.c
new file mode 100644
index 000000000..1ab6573a4
--- /dev/null
+++ b/example-26/null.c
@@ -0,0 +1,92 @@
+/*
+ FUSE: Filesystem in Userspace
+ Copyright (C) 2001-2006 Miklos Szeredi <miklos@szeredi.hu>
+
+ This program can be distributed under the terms of the GNU GPL.
+ See the file COPYING.
+
+ gcc -Wall `pkg-config fuse --cflags --libs` null.c -o null
+*/
+
+#define FUSE_USE_VERSION 26
+
+#include <fuse.h>
+#include <string.h>
+#include <unistd.h>
+#include <time.h>
+#include <errno.h>
+
+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 size)
+{
+ (void) size;
+
+ if(strcmp(path, "/") != 0)
+ return -ENOENT;
+
+ return 0;
+}
+
+static int null_open(const char *path, struct fuse_file_info *fi)
+{
+ (void) fi;
+
+ if(strcmp(path, "/") != 0)
+ return -ENOENT;
+
+ return 0;
+}
+
+static int null_read(const char *path, char *buf, size_t size,
+ off_t offset, struct fuse_file_info *fi)
+{
+ (void) buf;
+ (void) offset;
+ (void) fi;
+
+ if(strcmp(path, "/") != 0)
+ return -ENOENT;
+
+ return size;
+}
+
+static int null_write(const char *path, const char *buf, size_t size,
+ off_t offset, struct fuse_file_info *fi)
+{
+ (void) buf;
+ (void) offset;
+ (void) 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, NULL);
+}