IPB
>  Man Pages > Unix > FreeBSD 6.2 > Section 9 > kernel_mount man page

kernel_mount man page

Section 9 - FreeBSD 6.2 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!


KERNEL_MOUNT(9)        FreeBSD Kernel Developer's Manual       KERNEL_MOUNT(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


SYNOPSIS

     void
     free_mntarg(struct mntarg *ma);

     int
     kernel_mount(struct mntarg *ma, int flags);

     int
     kernel_vmount(int flags, ...);

     struct mntarg *
     mount_arg(struct mntarg *ma, const char *name, const void *val, int len);

     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 *
     mount_argsu(struct mntarg *ma, const char *name, const void *val,
         int len);


DESCRIPTION

     The kernel_mount() family of functions are provided as an API for build-
     ing 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 con-
     trol 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 mntarg structure.

     The kernel_mount() function pulls information from the structure to per-
     form 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 struc-
     ture.  The flag is the boolean value and name must start with "no", oth-
     erwise 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.,
     {name, value}.

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


SEE ALSO

     VFS(9), VFS_MOUNT(9), vfs_mount(9)


HISTORY

     The kernel_mount() family of functions and this manual page first
     appeared in FreeBSD 6.0.


AUTHORS

     The kernel_mount() family of functions and API was developed by
     Poul-Henning Kamp <phk@FreeBSD.org>.  This manual page was written by Tom
     Rhodes <trhodes@FreeBSD.org>.

FreeBSD 6.2                    December 13, 2004                   FreeBSD 6.2


Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 19 20:39:09 BST 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

CPAN man page (4333 hits)
(Suse Linux 10.1)

ssh man page (4186 hits)
(Suse Linux 10.1)

adv_cap_autoneg man page (4167 hits)
(Solaris 10 11_06)

sqlite3 man page (4090 hits)
(openSUSE 10.2)

svn man page (3251 hits)
(FreeBSD 6.2)

startproc man page (1908 hits)
(Suse Linux 10.1)

pprosetup man page (1667 hits)
(Solaris 10 11_06)

netcat man page (1614 hits)
(Suse Linux 10.1)

signal man page (1595 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (1562 hits)
(Solaris 10 11_06)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: Pyrenees Food :: Electronic Circuit Design :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum