GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MOUNT_ARGSU (9)

NAME

free_mntarg, kernel_mount, kernel_vmount, mount_arg, mount_argb, mount_argf, mount_argsu - functions provided as part of the kernel mount interface

CONTENTS

Synopsis
Description
Examples
See Also
History
Authors

SYNOPSIS

void free_mntarg struct mntarg *ma int kernel_mount struct mntarg *ma int flags int kernel_vmount int flags ... struct mntarg *
.Fo mount_arg struct mntarg *ma const char *name const void *val int len
.Fc struct mntarg * mount_argb struct mntarg *ma int flag const char *name struct mntarg * mount_argf struct mntarg *ma const char *name const char *fmt ... struct mntarg *
.Fo mount_argsu struct mntarg *ma const char *name const void *val int len
.Fc

DESCRIPTION

The kernel_mount family of functions are provided as an API for building a list of mount arguments which will be used to mount file systems from inside the kernel. By accumulating a list of arguments, the API takes shape and provides the information necessary for the kernel to control the mount(8) utility. When an error occurs, the process will stop. This will not cause a panic(9).

The header of the structure is stored in src/sys/kern/vfs_mount.c which permits automatic structure creation to ease the mount process. Memory allocation must always be freed when the entire process is complete, it is an error otherwise.

The free_mntarg function is used to free or clear the
.Vt mntarg structure.

The kernel_mount function pulls information from the structure to perform the mount request on a given file system. Additionally, the kernel_mount function always calls the free_mntarg function. If ma contains any error code generated during the construction, that code will be called and the file system mount will not be attempted.

The kernel_vmount is a function similar to printf(9) which is used to mount a file system.

The mount_arg function takes a plain argument and crafts parts of the structure with regards to various mount options. If the length is a value less than 0, strlen(3) is used. This argument will be referenced until either free_mntarg or kernel_mount is called.

The mount_argb function is used to add boolean arguments to the structure. The flag is the boolean value and name must start with "no", otherwise a panic will occur.

The mount_argf function adds printf(9) style arguments to the current structure.

The mount_argsu function will add arguments to the structure from a userland string.

EXAMPLES

An example of the *_cmount function:
static int
msdosfs_cmount(struct mntarg *ma, void *data, int flags, struct thread *td)
{
        struct msdosfs_args args;
        int error;

        if (data == NULL)                 return (EINVAL);         error = copyin(data, &args, sizeof(args));         if (error)                 return (error);

        ma = mount_argsu(ma, "from", args.fspec, MAXPATHLEN);         ma = mount_arg(ma, "export", &args.export, sizeof(args.export));         ma = mount_argf(ma, "uid", "%d", args.uid);         ma = mount_argf(ma, "gid", "%d", args.gid);         ma = mount_argf(ma, "mask", "%d", args.mask);         ma = mount_argf(ma, "dirmask", "%d", args.dirmask);

        ma = mount_argb(ma, args.flags & MSDOSFSMNT_SHORTNAME, "noshortname");         ma = mount_argb(ma, args.flags & MSDOSFSMNT_LONGNAME, "nolongname");         ma = mount_argb(ma, !(args.flags & MSDOSFSMNT_NOWIN95), "nowin95");         ma = mount_argb(ma, args.flags & MSDOSFSMNT_KICONV, "nokiconv");

        ma = mount_argsu(ma, "cs_win", args.cs_win, MAXCSLEN);         ma = mount_argsu(ma, "cs_dos", args.cs_dos, MAXCSLEN);         ma = mount_argsu(ma, "cs_local", args.cs_local, MAXCSLEN);

        error = kernel_mount(ma, flags);

        return (error); }

When working with kernel_vmount, varargs must come in pairs, e.g.,
.Brq Va name , value .

        error = kernel_vmount(
            MNT_RDONLY,
            "fstype", vfsname,
            "fspath", "/",
            "from", path,
            NULL);

SEE ALSO

VFS(9), VFS_MOUNT(9)

HISTORY

The kernel_mount family of functions and this manual page first appeared in
.Fx 6.0 .

AUTHORS


.An -nosplit The kernel_mount family of functions and API was developed by
.An Poul-Henning Kamp Aq phk@FreeBSD.org . This manual page was written by
.An Tom Rhodes Aq trhodes@FreeBSD.org .
Search for    or go to Top of page |  Section 9 |  Main Index


Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.