diff options
author | Pino Toscano <toscano.pino@tiscali.it> | 2013-03-23 14:21:25 +0100 |
---|---|---|
committer | Pino Toscano <toscano.pino@tiscali.it> | 2013-03-23 14:21:25 +0100 |
commit | 3f5e67633de9c07f99967edf00bf9a3efdc65f62 (patch) | |
tree | 04ad6945e67526a697fe70550843b167f85e07a6 /example-26/null.c | |
parent | aa1e153d4763f08774af6c5d8bb28769d5e77201 (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.c | 92 |
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); +} |