Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
VFS_GETOPT(9)	       FreeBSD Kernel Developer's Manual	 VFS_GETOPT(9)

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 re-
     moved 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 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_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 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 re-
     turned.  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() 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>.

FreeBSD	13.0			 July 31, 2011			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=vfs_getopt&sektion=9&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help