 0c3983b25a
			
		
	
	
		0c3983b25a
		
	
	
	
	
		
			
			. add bsd-style MLINKS to minix man set, restoring aliases (e.g. man add64 -> int64) . update daily cron script to run makewhatis and restore makewhatis in man Makefile (makedb), restores functionality of man -k . netbsd imports of man, mdocml, makewhatis, libutil, apropos . update man.conf with manpage locations, restoring man [-s] <section> . throws out some obsolete manpages
		
			
				
	
	
		
			278 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			278 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: getmntopts.3,v 1.12 2010/08/24 12:05:01 christos Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 1994
 | |
| .\"	The Regents of the University of California.  All rights reserved.
 | |
| .\"
 | |
| .\" Redistribution and use in source and binary forms, with or without
 | |
| .\" modification, are permitted provided that the following conditions
 | |
| .\" are met:
 | |
| .\" 1. Redistributions of source code must retain the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer.
 | |
| .\" 2. Redistributions in binary form must reproduce the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer in the
 | |
| .\"    documentation and/or other materials provided with the distribution.
 | |
| .\" 3. Neither the name of the University nor the names of its contributors
 | |
| .\"    may be used to endorse or promote products derived from this software
 | |
| .\"    without specific prior written permission.
 | |
| .\"
 | |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | |
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | |
| .\" SUCH DAMAGE.
 | |
| .\"
 | |
| .\"	@(#)getmntopts.3	8.3 (Berkeley) 3/30/95
 | |
| .\"
 | |
| .Dd May 4, 2010
 | |
| .Dt GETMNTOPTS 3
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm getmntopts
 | |
| .Nd scan mount options
 | |
| .Sh LIBRARY
 | |
| .Lb libutil
 | |
| .Sh SYNOPSIS
 | |
| .In mntopts.h
 | |
| .Ft mntoptparse_t
 | |
| .Fn getmntopts "const char *options" "const struct mntopt *mopts" "int *flagp" "int *altflagp"
 | |
| .Ft const char *
 | |
| .Fn getmntoptstr "mntoptparse_t mp" "const char *opt"
 | |
| .Ft long
 | |
| .Fn getmntoptnum "mntoptparse_t mp" "const char *opt"
 | |
| .Ft void
 | |
| .Fn freemntopts "mntoptparse_t mp"
 | |
| .Sh DESCRIPTION
 | |
| The
 | |
| .Fn getmntopts
 | |
| function takes a comma separated option list and a list
 | |
| of valid option names, and computes the bitmasks
 | |
| corresponding to the requested set of options.
 | |
| .Pp
 | |
| The string
 | |
| .Ar options
 | |
| is broken down into a sequence of comma separated tokens.
 | |
| Each token is looked up in the table described by
 | |
| .Ar mopts
 | |
| and the bits in
 | |
| the word referenced by either
 | |
| .Ar flagp
 | |
| or
 | |
| .Ar altflagp
 | |
| (depending on the
 | |
| .Dv m_altloc
 | |
| field of the option's table entry)
 | |
| are updated.
 | |
| The flag words are not initialized by
 | |
| .Fn getmntopts .
 | |
| The table,
 | |
| .Ar mopts ,
 | |
| has the following format:
 | |
| .Bd -literal
 | |
| struct mntopt {
 | |
| 	const char *m_option;	/* option name */
 | |
| 	int m_inverse;		/* negative option, e.g., "dev" */
 | |
| 	int m_flag;		/* bit to set, e.g., MNT_RDONLY */
 | |
| 	int m_altloc;		/* use altflagp rather than flagp */
 | |
| };
 | |
| .Ed
 | |
| .Pp
 | |
| The members of this structure are:
 | |
| .Bl -tag -width m_inverse
 | |
| .It Fa m_option
 | |
| the option name,
 | |
| for example
 | |
| .Dq suid .
 | |
| .It Fa m_inverse
 | |
| tells
 | |
| .Fn getmntopts
 | |
| that the name has the inverse meaning of the bit.
 | |
| For example,
 | |
| .Dq suid
 | |
| is the string, whereas the mount flag is
 | |
| .Dv MNT_NOSUID .
 | |
| In this case, the sense of the string and the flag
 | |
| are inverted, so the
 | |
| .Fa m_inverse
 | |
| flag should be set.
 | |
| .It Fa m_flag
 | |
| the value of the bit to be set or cleared in
 | |
| the flag word when the option is recognized.
 | |
| The bit is set when the option is discovered,
 | |
| but cleared if the option name was preceded
 | |
| by the letters
 | |
| .Dq no .
 | |
| The
 | |
| .Fa m_inverse
 | |
| flag causes these two operations to be reversed.
 | |
| .It Fa m_altloc
 | |
| the bit should be set or cleared in
 | |
| .Ar altflagp
 | |
| rather than
 | |
| .Ar flagp .
 | |
| .El
 | |
| .Pp
 | |
| Each of the user visible
 | |
| .Dv MNT_
 | |
| flags has a corresponding
 | |
| .Dv MOPT_
 | |
| macro which defines an appropriate
 | |
| .Li "struct mntopt"
 | |
| entry.
 | |
| To simplify the program interface and ensure consistency across all
 | |
| programs, a general purpose macro,
 | |
| .Dv MOPT_STDOPTS ,
 | |
| is defined which contains an entry for all the generic VFS options.
 | |
| In addition, the macros
 | |
| .Dv MOPT_FORCE
 | |
| and
 | |
| .Dv MOPT_UPDATE
 | |
| exist to enable the
 | |
| .Dv MNT_FORCE
 | |
| and
 | |
| .Dv MNT_UPDATE
 | |
| flags to be set.
 | |
| Finally, the table must be terminated by an entry with a
 | |
| .Dv NULL
 | |
| first element.
 | |
| .Pp
 | |
| .Fn getmntopts
 | |
| returns a
 | |
| .Li "mntoptparse_t"
 | |
| handle that can be used in subsequent
 | |
| .Fn getmntoptstr
 | |
| and
 | |
| .Fn getmntoptnum
 | |
| calls to fetch a value for an option and that must be freed with a call
 | |
| to
 | |
| .Fn freemntopts .
 | |
| If an error occurred, then if the external integer value
 | |
| .Va getmnt_silent
 | |
| is zero then
 | |
| .Fn getmntopts
 | |
| prints an error message and exits;
 | |
| if
 | |
| .Va getmnt_silent
 | |
| is non-zero then
 | |
| .Fn getmntopts
 | |
| returns
 | |
| .Dv NULL .
 | |
| .Pp
 | |
| The
 | |
| .Fn getmntoptstr
 | |
| function returns the string value of the named option, if such a value
 | |
| was set in the option string.
 | |
| If the value was not set, then if the external integer value
 | |
| .Va getmnt_silent
 | |
| is zero then
 | |
| .Fn getmntoptstr
 | |
| prints an error message and exits;
 | |
| if
 | |
| .Va getmnt_silent
 | |
| is non-zero then
 | |
| .Fn getmntoptstr
 | |
| returns
 | |
| .Dv NULL .
 | |
| .Pp
 | |
| The
 | |
| .Fn getmntoptnum
 | |
| returns the long value of the named option, if such a value was set in the
 | |
| option string.
 | |
| If the value was not set, or could not be converted from a string to a
 | |
| long, then if the external integer value
 | |
| .Va getmnt_silent
 | |
| is zero then
 | |
| .Fn getmntoptnum
 | |
| prints an error message and exits;
 | |
| if
 | |
| .Va getmnt_silent
 | |
| is non-zero then
 | |
| .Fn getmntoptnum
 | |
| returns \-1.
 | |
| .Pp
 | |
| The
 | |
| .Fn freemntopts
 | |
| frees the storage used by
 | |
| .Fn getmntopts .
 | |
| .Sh RETURN VALUES
 | |
| .Fn getmntopts
 | |
| returns
 | |
| .Dv NULL
 | |
| if an error occurred.
 | |
| Note that some bits may already have been set in
 | |
| .Va flagp
 | |
| and
 | |
| .Va altflagp
 | |
| even if
 | |
| .Dv NULL
 | |
| is returned.
 | |
| .Fn getmntoptstr
 | |
| returns
 | |
| .Dv NULL
 | |
| if an error occurred.
 | |
| .Fn getmntoptnum
 | |
| returns \-1 if an error occurred.
 | |
| .Sh EXAMPLES
 | |
| Most commands will use the standard option set.
 | |
| Local filesystems which support the
 | |
| .Dv MNT_UPDATE
 | |
| flag, would also have an
 | |
| .Dv MOPT_UPDATE
 | |
| entry.
 | |
| This can be declared and used as follows:
 | |
| .Bd -literal -offset indent
 | |
| #include \*[Lt]mntopts.h\*[Gt]
 | |
| 
 | |
| static const struct mntopt mopts[] = {
 | |
| 	MOPT_STDOPTS,
 | |
| 	MOPT_UPDATE,
 | |
| 	{ NULL }
 | |
| };
 | |
| 
 | |
| \&...
 | |
| 
 | |
| long val;
 | |
| mntoptparse_t mp;
 | |
| mntflags = mntaltflags = 0;
 | |
| 
 | |
| \&...
 | |
| 
 | |
| mp = getmntopts(options, mopts, \*[Am]mntflags, \*[Am]mntaltflags);
 | |
| 
 | |
| if (mp == NULL)
 | |
| 	err(EXIT_FAILURE, "getmntopts");
 | |
| 
 | |
| \&...
 | |
| 
 | |
| val = getmntoptnum(mp, "rsize");
 | |
| freemntopts(mp);
 | |
| .Ed
 | |
| .Sh DIAGNOSTICS
 | |
| If the external integer variable
 | |
| .Va getmnt_silent
 | |
| is zero then the
 | |
| .Fn getmntopts ,
 | |
| .Fn getmntoptstr ,
 | |
| and
 | |
| .Fn getmntoptnum
 | |
| functions display an error message and exit if an error occurred.
 | |
| By default
 | |
| .Va getmnt_silent
 | |
| is zero.
 | |
| .Sh SEE ALSO
 | |
| .Xr err 3 ,
 | |
| .Xr mount 8
 | |
| .Sh HISTORY
 | |
| The
 | |
| .Fn getmntopts
 | |
| function appeared in
 | |
| .Bx 4.4 .
 | |
| It was moved to the utilities library and enhanced to retrieve option
 | |
| values in
 | |
| .Nx 2.0 .
 |