Provided by: freebsd-manpages_12.2-1_all bug

NAME

       vfs_getopt,    vfs_getopts,    vfs_flagopt,    vfs_scanopt,   vfs_copyopt,   vfs_filteropt,   vfs_setopt,
       vfs_setopt_part, vfs_setopts — manipulate mount options and their values

SYNOPSIS

       #include <sys/param.h>
       #include <sys/mount.h>

       int
       vfs_getopt(struct vfsoptlist *opts, const char *name, void **buf, int *len);

       char *
       vfs_getops(struct vfsoptlist *opts, const char *name, int *error);

       int
       vfs_flagopt(struct vfsoptlist *opts, const char *name, uint64_t *flags, uint64_t flag);

       int
       vfs_scanopt(struct vfsoptlist *opts, const char *name, const char *fmt, ...);

       int
       vfs_copyopt(struct vfsoptlist *opts, const char *name, void *dest, int len);

       int
       vfs_filteropt(struct vfsoptlist *opts, const char **legal);

       int
       vfs_setopt(struct vfsoptlist *opts, const char *name, void *value, int len);

       int
       vfs_setopt_part(struct vfsoptlist *opts, const char *name, void *value, int len);

       int
       vfs_setopts(struct vfsoptlist *opts, const char *name, const char *value);

DESCRIPTION

       The vfs_getopt() function sets buf to point to the value of the named mount option, and sets len  to  the
       length  of  the  value  if it is not NULL.  The buf argument will point to the actual value, and does not
       need to be freed or released (and probably should not be modified).

       The vfs_getopts() function returns the value of the specified  option  if  it  is  a  string  (i.e.,  NUL
       terminated).

       The  vfs_flagopt()  function  determines if an option exists.  If the option does exist, and flags is not
       NULL, flag is added to those already set in flags.  If the option does not exist, and flags is not  NULL,
       flag is removed from those already set in flags.  An example of typical usage is:

       if (vfs_flagopt(mp->mnt_optnew, "wormlike", NULL, 0))
               vfs_flagopt(mp->mnt_optnew, "appendok", &(mp->flags), F_APPENDOK);

       The  vfs_scanopt()  function  performs a vsscanf(3) with the option's value, using the given format, into
       the specified variable arguments.  The value must be a string (i.e., NUL terminated).

       The vfs_copyopt() function creates a copy of the option's value.  The len argument must match the  length
       of the option's value exactly (i.e., a larger buffer will still cause vfs_copyout() to fail with EINVAL).

       The  vfs_filteropt()  function  ensures that no unknown options were specified.  A option is valid if its
       name matches one of the names in the list of legal names.  An option may be prefixed with 'no', and still
       be considered valid.

       The vfs_setopt() and vfs_setopt_part() functions copy new data into the option's value.  In vfs_setopt(),
       the len argument must match the length of the option's value exactly (i.e., a larger  buffer  will  still
       cause vfs_copyout() to fail with EINVAL).

       The  vfs_setopts() function copies a new string into the option's value.  The string, including NUL byte,
       must be no longer than the option's length.

RETURN VALUES

       The vfs_getopt() function returns 0 if the option was found; otherwise, ENOENT is returned.

       The vfs_getops() function returns the specified option if it is found, and is  NUL  terminated.   If  the
       option  was found, but is not NUL terminated, error is set to EINVAL and NULL is returned.  If the option
       was not found, error is set to 0, and NULL is returned.

       The vfs_flagopt() function returns 1 if the option was found, and 0 if it was not.

       The vfs_scanopt() function returns 0 if the option was not found, or was not NUL  terminated;  otherwise,
       the  return  value  of  vsscanf(3)  is returned.  If vsscanf(3) returns 0, it will be returned unchanged;
       therefore, a return value of 0 does not always mean the option does not exist, or is not a valid string.

       The vfs_copyopt() and vfs_setopt() functions return 0 if the copy was successful, EINVAL  if  the  option
       was found but the lengths did not match, and ENOENT if the option was not found.

       The vfs_filteropt() function returns 0 if all of the options are legal; otherwise, EINVAL is returned.

       The  vfs_setopts()  function returns 0 if the copy was successful, EINVAL if the option was found but the
       string was too long, and ENOENT if the option was not found.

AUTHORS

       This manual page was written by Chad David <davidc@FreeBSD.org> and Ruslan Ermilov <ru@FreeBSD.org>.

Debian                                            July 31, 2011                                    VFS_GETOPT(9)