The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

kernel_vmount (9)
  • >> kernel_vmount (9) ( FreeBSD man: Ядро )

  • BSD mandoc
     

    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 * Fo mount_arg Fa struct mntarg *ma const char *name const void *val int len Fc Ft 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 Fa 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 Fa 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 Fa flag is the boolean value and Fa name must start with Qq Li 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 Fn *_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 (,);
    Fa varargs must come in pairs, e.g., Br q Va name , value .

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

    SEE ALSO

    VFS(9), VFS_MOUNT9, vfs_mount9  

    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 .


     

    Index

    NAME
    SYNOPSIS
    DESCRIPTION
    EXAMPLES
    SEE ALSO
    HISTORY
    AUTHORS


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру