VFS_SET (9)
Leading comments
Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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(s), this list of conditions and the following disclaimer as the first lines of this file unmodified other than the possible addition of one or more copyright notices. 2. Redistributions in binary for...
NAME
VFS_SET - set up loadable file system Vt vfsconfSYNOPSIS
In sys/param.h In sys/kernel.h In sys/module.h In sys/mount.h Ft void Fn VFS_SET struct vfsops *vfsops fsname int flagsDESCRIPTION
Fn VFS_SET creates a Vt vfsconf structure for the loadable module with the given Fa vfsops , fsname and Fa flags , and declares it by calling DECLARE_MODULE9 using Fn vfs_modevent as the event handler.Possible values for the Fa flags argument are:
- VFCF_STATIC
- File system should be statically available in the kernel.
- VFCF_NETWORK
- Network exportable file system.
- VFCF_READONLY
- Does not support write operations.
- VFCF_SYNTHETIC
- Pseudo file system, data does not represent on-disk files.
- VFCF_LOOPBACK
- Loopback file system layer.
- VFCF_UNICODE
- File names are stored as Unicode.
- VFCF_JAIL
- Can be mounted from within a jail if security.jail.mount_allowed sysctl is set to 1
- VFCF_DELEGADMIN
- Supports delegated administration if vfs.usermount sysctl is set to 1
- VFCF_SBDRY
- When in VFS method, the thread suspension is deferred to the user boundary upon arrival of stop action.
PSEUDOCODE
/* * Fill in the fields for which we have special methods. * The others are initially null. This tells vfs to change them to * pointers to vfs_std* functions during file system registration. */ static struct vfsops myfs_vfsops = { .vfs_mount = myfs_mount, .vfs_root = myfs_root, .vfs_statfs = myfs_statfs, .vfs_unmount = myfs_unmount, }; VFS_SET(myfs_vfsops, myfs, 0);