xref: /freebsd/share/man/man9/VFS_SET.9 (revision 2e3507c25e42292b45a5482e116d278f5515d04d)
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
43creates a
44.Vt vfsconf
45structure for the loadable module with the given
46.Fa vfsops , fsname
47and
48.Fa flags ,
49and declares it by calling
50.Xr DECLARE_MODULE 9
51using
52.Fn vfs_modevent
53as the event handler.
54.Pp
55Possible values for the
56.Fa flags
57argument are:
58.Bl -hang -width ".Dv VFCF_DELEGADMIN"
59.It Dv VFCF_STATIC
60File system should be statically available in the kernel.
61.It Dv VFCF_NETWORK
62Network exportable file system.
63.It Dv VFCF_READONLY
64Does not support write operations.
65.It Dv VFCF_SYNTHETIC
66Pseudo file system, data does not represent on-disk files.
67.It Dv VFCF_LOOPBACK
68Loopback file system layer.
69.It Dv VFCF_UNICODE
70File names are stored as Unicode.
71.It Dv VFCF_JAIL
72Can be mounted from within a jail if
73.Va allow.mount
74and
75.Va allow.mount.<fsname>
76jail parameters are set.
77.It Dv VFCF_DELEGADMIN
78Supports delegated administration if
79.Va vfs.usermount
80sysctl is set to
81.Dv 1 .
82.It Dv VFCF_SBDRY
83When in VFS method, the thread suspension is deferred to the user
84boundary 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 */
93static 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
100VFS_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
109This manual page was written by
110.An Chad David Aq Mt davidc@acns.ab.ca .
111