vfs_flagopt.9freebsd

Langue: en

Autres versions - même langue

Version: 308377 (debian - 07/07/09)

Section: 9 (Appels noyau Linux)


BSD mandoc

NAME

vfs_getopt vfs_getopts vfs_flagopt vfs_scanopt vfs_copyopt vfs_filteropt - manipulate mount options and their values

SYNOPSIS

In sys/param.h In sys/mount.h Ft int Fo vfs_getopt Fa struct vfsoptlist *opts const char *name void **buf int *len Fc Ft char * Fn vfs_getops struct vfsoptlist *opts const char *name int *error Ft int Fo vfs_flagopt Fa struct vfsoptlist *opts const char *name u_int *flags u_int flag Fc Ft int Fo vfs_scanopt Fa struct vfsoptlist *opts const char *name const char *fmt ... Fc Ft int Fo vfs_copyopt Fa struct vfsoptlist *opts const char *name void *dest int len Fc Ft int Fo vfs_filteropt Fa struct vfsoptlist *opts const char **legal Fc  

DESCRIPTION

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

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

The Fn vfs_flagopt function determines if an option exists. If the option does exist, and Fa flags is not NULL Fa flag is added to those already set in Fa flags . If the option does not exist, and Fa flags is not NULL Fa flag is removed from those already set in Fa 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 Fn 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 Fn vfs_copyopt function creates a copy of the options value. The Fa len argument must match the length of the options value exactly (i.e., a larger buffer will still cause Fn vfs_copyout to fail with Er EINVAL ) .

The Fn 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.

RETURN VALUES

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

The Fn 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, Fa error is set to Er EINVAL and NULL is returned. If the option was not found, Fa error is set to 0, and NULL is returned.

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

The Fn 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 Fn vfs_copyopt function returns 0 if the copy was successful, Er EINVAL if the option was found but the lengths did not match, and Er ENOENT if the option was not found.

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

AUTHORS

An -nosplit This manual page was written by An Chad David Aq davidc@FreeBSD.org and An Ruslan Ermilov Aq ru@FreeBSD.org .