summaryrefslogtreecommitdiff
path: root/example/null.c
diff options
context:
space:
mode:
authorPaul Lawrence <paullawrence@google.com>2019-08-02 16:45:27 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-08-02 16:45:27 -0700
commit1ca65fd045ff0aad723cfb4c740ee9250ae5c360 (patch)
treeeb415748db51aed7c3d08a5e7dae57c8576ea940 /example/null.c
parentbe83b553fef2fa13ecc8edbea974f450637cc60e (diff)
parentc77441c6bcfb18dd3c887cdf24a778960fbe0c41 (diff)
Remove GPL files am: 94aa887ced am: b4099f5e0f am: 2609a900fb
am: c77441c6bc Change-Id: I849d56bb6f9909131b449f4f472f21aabd6d2aeb
Diffstat (limited to 'example/null.c')
-rw-r--r--example/null.c143
1 files changed, 0 insertions, 143 deletions
diff --git a/example/null.c b/example/null.c
deleted file mode 100644
index ed68c0b..0000000
--- a/example/null.c
+++ /dev/null
@@ -1,143 +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 GPL.
- See the file COPYING.
-*/
-
-/** @file
- *
- * This "filesystem" provides only a single file. The mountpoint
- * needs to be a file rather than a directory. All writes to the
- * file will be discarded, and reading the file always returns
- * \0.
- *
- * Compile with:
- *
- * gcc -Wall null.c `pkg-config fuse3 --cflags --libs` -o null
- *
- * ## Source code ##
- * \include passthrough_fh.c
- */
-
-
-#define FUSE_USE_VERSION 31
-
-#include <fuse.h>
-#include <fuse_lowlevel.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <time.h>
-#include <errno.h>
-
-static int null_getattr(const char *path, struct stat *stbuf,
- struct fuse_file_info *fi)
-{
- (void) fi;
-
- 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,
- struct fuse_file_info *fi)
-{
- (void) size;
- (void) fi;
-
- 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;
-
- if (offset >= (1ULL << 32))
- return 0;
-
- memset(buf, 0, size);
- 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[])
-{
- struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
- struct fuse_cmdline_opts opts;
- struct stat stbuf;
-
- if (fuse_parse_cmdline(&args, &opts) != 0)
- return 1;
- fuse_opt_free_args(&args);
-
- if (!opts.mountpoint) {
- fprintf(stderr, "missing mountpoint parameter\n");
- return 1;
- }
-
- if (stat(opts.mountpoint, &stbuf) == -1) {
- fprintf(stderr ,"failed to access mountpoint %s: %s\n",
- opts.mountpoint, strerror(errno));
- free(opts.mountpoint);
- return 1;
- }
- free(opts.mountpoint);
- if (!S_ISREG(stbuf.st_mode)) {
- fprintf(stderr, "mountpoint is not a regular file\n");
- return 1;
- }
-
- return fuse_main(argc, argv, &null_oper, NULL);
-}