table of contents
VFS_GETOPT(9) | 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 valuesSYNOPSIS¶
#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 notNULL
. 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);
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⟩.March 2, 2009 | Debian |