FreeBSD 7.0 manual page repository

FreeBSD is a free computer operating system based on BSD UNIX originally. Many IT companies, like DeployIS is using it to provide an up-to-date, stable operating system.

vfs_getopt, vfs_getopts, vfs_flagopt, vfs_scanopt, vfs_copyopt,

 

NAME

      vfs_getopt, vfs_getopts, vfs_flagopt, vfs_scanopt, vfs_copyopt,
      vfs_filteropt - 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);
 

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 options 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 options value.  The len
      argument must match the length of the options 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 speci‐
      fied.  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 con‐
      sidered valid.
      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 termi‐
      nated, 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; there‐
      fore, a return value of 0 does not always mean the option does not exist,
      or is not a valid string.
 
      The vfs_copyopt() function returns 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.
 

AUTHORS

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

Sections

Based on BSD UNIX
FreeBSD is an advanced operating system for x86 compatible (including Pentium and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC, IA-64, PC-98 and ARM architectures. It is derived from BSD, the version of UNIX developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in various stages of development.