From 00bddfe650912fdc52b470e0d64a597802f61ec6 Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Sun, 3 Feb 2008 22:29:09 +0000 Subject: lib/mount_bsd.c: prettify option specifications --- lib/mount_bsd.c | 109 ++++++++++++++++++++++---------------------------------- 1 file changed, 42 insertions(+), 67 deletions(-) (limited to 'lib/mount_bsd.c') diff --git a/lib/mount_bsd.c b/lib/mount_bsd.c index c186ffc..1de9cfa 100644 --- a/lib/mount_bsd.c +++ b/lib/mount_bsd.c @@ -42,84 +42,59 @@ struct mount_opts { char *kernel_opts; }; +#define FUSE_DUAL_OPT_KEY(templ, key) \ + FUSE_OPT_KEY(templ, key), FUSE_OPT_KEY("no" templ, key) + static const struct fuse_opt fuse_mount_opts[] = { { "allow_other", offsetof(struct mount_opts, allow_other), 1 }, { "allow_root", offsetof(struct mount_opts, allow_root), 1 }, - FUSE_OPT_KEY("allow_root", KEY_ALLOW_ROOT), - FUSE_OPT_KEY("-r", KEY_RO), - FUSE_OPT_KEY("-h", KEY_HELP), - FUSE_OPT_KEY("--help", KEY_HELP), - FUSE_OPT_KEY("-V", KEY_VERSION), - FUSE_OPT_KEY("--version", KEY_VERSION), + FUSE_OPT_KEY("allow_root", KEY_ALLOW_ROOT), + FUSE_OPT_KEY("-r", KEY_RO), + FUSE_OPT_KEY("-h", KEY_HELP), + FUSE_OPT_KEY("--help", KEY_HELP), + FUSE_OPT_KEY("-V", KEY_VERSION), + FUSE_OPT_KEY("--version", KEY_VERSION), /* standard FreeBSD mount options */ - FUSE_OPT_KEY("dev", KEY_KERN), - FUSE_OPT_KEY("async", KEY_KERN), - FUSE_OPT_KEY("atime", KEY_KERN), - FUSE_OPT_KEY("dev", KEY_KERN), - FUSE_OPT_KEY("exec", KEY_KERN), - FUSE_OPT_KEY("suid", KEY_KERN), - FUSE_OPT_KEY("symfollow", KEY_KERN), - FUSE_OPT_KEY("rdonly", KEY_KERN), - FUSE_OPT_KEY("sync", KEY_KERN), - FUSE_OPT_KEY("union", KEY_KERN), - FUSE_OPT_KEY("userquota", KEY_KERN), - FUSE_OPT_KEY("groupquota", KEY_KERN), - FUSE_OPT_KEY("clusterr", KEY_KERN), - FUSE_OPT_KEY("clusterw", KEY_KERN), - FUSE_OPT_KEY("suiddir", KEY_KERN), - FUSE_OPT_KEY("snapshot", KEY_KERN), - FUSE_OPT_KEY("multilabel", KEY_KERN), - FUSE_OPT_KEY("acls", KEY_KERN), - FUSE_OPT_KEY("force", KEY_KERN), - FUSE_OPT_KEY("update", KEY_KERN), - FUSE_OPT_KEY("ro", KEY_KERN), - FUSE_OPT_KEY("rw", KEY_KERN), - FUSE_OPT_KEY("auto", KEY_KERN), + FUSE_DUAL_OPT_KEY("dev", KEY_KERN), + FUSE_DUAL_OPT_KEY("async", KEY_KERN), + FUSE_DUAL_OPT_KEY("atime", KEY_KERN), + FUSE_DUAL_OPT_KEY("dev", KEY_KERN), + FUSE_DUAL_OPT_KEY("exec", KEY_KERN), + FUSE_DUAL_OPT_KEY("suid", KEY_KERN), + FUSE_DUAL_OPT_KEY("symfollow", KEY_KERN), + FUSE_DUAL_OPT_KEY("rdonly", KEY_KERN), + FUSE_DUAL_OPT_KEY("sync", KEY_KERN), + FUSE_DUAL_OPT_KEY("union", KEY_KERN), + FUSE_DUAL_OPT_KEY("userquota", KEY_KERN), + FUSE_DUAL_OPT_KEY("groupquota", KEY_KERN), + FUSE_DUAL_OPT_KEY("clusterr", KEY_KERN), + FUSE_DUAL_OPT_KEY("clusterw", KEY_KERN), + FUSE_DUAL_OPT_KEY("suiddir", KEY_KERN), + FUSE_DUAL_OPT_KEY("snapshot", KEY_KERN), + FUSE_DUAL_OPT_KEY("multilabel", KEY_KERN), + FUSE_DUAL_OPT_KEY("acls", KEY_KERN), + FUSE_DUAL_OPT_KEY("force", KEY_KERN), + FUSE_DUAL_OPT_KEY("update", KEY_KERN), + FUSE_DUAL_OPT_KEY("ro", KEY_KERN), + FUSE_DUAL_OPT_KEY("rw", KEY_KERN), + FUSE_DUAL_OPT_KEY("auto", KEY_KERN), /* options supported under both Linux and FBSD */ - FUSE_OPT_KEY("allow_other", KEY_KERN), - FUSE_OPT_KEY("default_permissions", KEY_KERN), - FUSE_OPT_KEY("subtype=", KEY_KERN), + FUSE_DUAL_OPT_KEY("allow_other", KEY_KERN), + FUSE_DUAL_OPT_KEY("default_permissions",KEY_KERN), + FUSE_OPT_KEY("max_read=", KEY_KERN), + FUSE_OPT_KEY("subtype=", KEY_KERN), /* FBSD FUSE specific mount options */ - FUSE_OPT_KEY("private", KEY_KERN), - FUSE_OPT_KEY("neglect_shares", KEY_KERN), - FUSE_OPT_KEY("push_symlinks_in", KEY_KERN), + FUSE_DUAL_OPT_KEY("private", KEY_KERN), + FUSE_DUAL_OPT_KEY("neglect_shares", KEY_KERN), + FUSE_DUAL_OPT_KEY("push_symlinks_in", KEY_KERN), /* stock FBSD mountopt parsing routine lets anything be negated... */ - FUSE_OPT_KEY("nodev", KEY_KERN), - FUSE_OPT_KEY("noasync", KEY_KERN), - FUSE_OPT_KEY("noatime", KEY_KERN), - FUSE_OPT_KEY("nodev", KEY_KERN), - FUSE_OPT_KEY("noexec", KEY_KERN), - FUSE_OPT_KEY("nosuid", KEY_KERN), - FUSE_OPT_KEY("nosymfollow", KEY_KERN), - FUSE_OPT_KEY("nordonly", KEY_KERN), - FUSE_OPT_KEY("nosync", KEY_KERN), - FUSE_OPT_KEY("nounion", KEY_KERN), - FUSE_OPT_KEY("nouserquota", KEY_KERN), - FUSE_OPT_KEY("nogroupquota", KEY_KERN), - FUSE_OPT_KEY("noclusterr", KEY_KERN), - FUSE_OPT_KEY("noclusterw", KEY_KERN), - FUSE_OPT_KEY("nosuiddir", KEY_KERN), - FUSE_OPT_KEY("nosnapshot", KEY_KERN), - FUSE_OPT_KEY("nomultilabel", KEY_KERN), - FUSE_OPT_KEY("noacls", KEY_KERN), - FUSE_OPT_KEY("noforce", KEY_KERN), - FUSE_OPT_KEY("noupdate", KEY_KERN), - FUSE_OPT_KEY("noro", KEY_KERN), - FUSE_OPT_KEY("norw", KEY_KERN), - FUSE_OPT_KEY("noauto", KEY_KERN), - FUSE_OPT_KEY("noallow_other", KEY_KERN), - FUSE_OPT_KEY("nodefault_permissions", KEY_KERN), - FUSE_OPT_KEY("noprivate", KEY_KERN), - FUSE_OPT_KEY("noneglect_shares", KEY_KERN), - FUSE_OPT_KEY("nopush_symlinks_in", KEY_KERN), /* * Linux specific mount options, but let just the mount util * handle them */ - FUSE_OPT_KEY("fsname=", KEY_KERN), - FUSE_OPT_KEY("nonempty", KEY_KERN), - FUSE_OPT_KEY("large_read", KEY_KERN), - FUSE_OPT_KEY("max_read=", KEY_KERN), + FUSE_OPT_KEY("fsname=", KEY_KERN), + FUSE_OPT_KEY("nonempty", KEY_KERN), + FUSE_OPT_KEY("large_read", KEY_KERN), FUSE_OPT_END }; -- cgit v1.2.3