]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - share/man/man9/VFS_SET.9
Remove $FreeBSD$: two-line nroff pattern
[FreeBSD/FreeBSD.git] / share / man / man9 / VFS_SET.9
1 .\"
2 .\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice(s), this list of conditions and the following disclaimer as
9 .\"    the first lines of this file unmodified other than the possible
10 .\"    addition of one or more copyright notices.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\"    notice(s), this list of conditions and the following disclaimer in the
13 .\"    documentation and/or other materials provided with the distribution.
14 .\"
15 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
16 .\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 .\" DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
19 .\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 .\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21 .\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22 .\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25 .\" DAMAGE.
26 .\"
27 .Dd August 16, 2018
28 .Dt VFS_SET 9
29 .Os
30 .Sh NAME
31 .Nm VFS_SET
32 .Nd set up loadable file system
33 .Vt vfsconf
34 .Sh SYNOPSIS
35 .In sys/param.h
36 .In sys/kernel.h
37 .In sys/module.h
38 .In sys/mount.h
39 .Ft void
40 .Fn VFS_SET "struct vfsops *vfsops" "fsname" "int flags"
41 .Sh DESCRIPTION
42 .Fn VFS_SET
43 creates a
44 .Vt vfsconf
45 structure for the loadable module with the given
46 .Fa vfsops , fsname
47 and
48 .Fa flags ,
49 and declares it by calling
50 .Xr DECLARE_MODULE 9
51 using
52 .Fn vfs_modevent
53 as the event handler.
54 .Pp
55 Possible values for the
56 .Fa flags
57 argument are:
58 .Bl -hang -width ".Dv VFCF_DELEGADMIN"
59 .It Dv VFCF_STATIC
60 File system should be statically available in the kernel.
61 .It Dv VFCF_NETWORK
62 Network exportable file system.
63 .It Dv VFCF_READONLY
64 Does not support write operations.
65 .It Dv VFCF_SYNTHETIC
66 Pseudo file system, data does not represent on-disk files.
67 .It Dv VFCF_LOOPBACK
68 Loopback file system layer.
69 .It Dv VFCF_UNICODE
70 File names are stored as Unicode.
71 .It Dv VFCF_JAIL
72 Can be mounted from within a jail if
73 .Va allow.mount
74 and
75 .Va allow.mount.<fsname>
76 jail parameters are set.
77 .It Dv VFCF_DELEGADMIN
78 Supports delegated administration if
79 .Va vfs.usermount
80 sysctl is set to
81 .Dv 1 .
82 .It Dv VFCF_SBDRY
83 When in VFS method, the thread suspension is deferred to the user
84 boundary upon arrival of stop action.
85 .El
86 .Sh PSEUDOCODE
87 .Bd -literal
88 /*
89  * Fill in the fields for which we have special methods.
90  * The others are initially null.  This tells vfs to change them to
91  * pointers to vfs_std* functions during file system registration.
92  */
93 static struct vfsops myfs_vfsops = {
94         .vfs_mount =    myfs_mount,
95         .vfs_root =     myfs_root,
96         .vfs_statfs =   myfs_statfs,
97         .vfs_unmount =  myfs_unmount,
98 };
99
100 VFS_SET(myfs_vfsops, myfs, 0);
101 .Ed
102 .Sh SEE ALSO
103 .Xr jail 2 ,
104 .Xr jail 8 ,
105 .Xr DECLARE_MODULE 9 ,
106 .Xr vfs_modevent 9 ,
107 .Xr vfsconf 9
108 .Sh AUTHORS
109 This manual page was written by
110 .An Chad David Aq Mt davidc@acns.ab.ca .