Provided by: freebsd-manpages_8.0-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, u_int *flags,
             u_int 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〉.