Lines Matching defs:ma

75 static void	free_mntarg(struct mntarg *ma);
709 struct mntarg *ma = NULL;
751 ma = mount_argsu(ma, "fstype", uap->type, MFSNAMELEN);
752 ma = mount_argsu(ma, "fspath", uap->path, MNAMELEN);
753 ma = mount_argb(ma, flags & MNT_RDONLY, "noro");
754 ma = mount_argb(ma, !(flags & MNT_NOSUID), "nosuid");
755 ma = mount_argb(ma, !(flags & MNT_NOEXEC), "noexec");
757 error = vfsp->vfc_vfsops->vfs_cmount(ma, uap->data, flags);
1819 mount_argb(struct mntarg *ma, int flag, const char *name)
1825 return (mount_arg(ma, name + (flag ? 2 : 0), NULL, 0));
1832 mount_argf(struct mntarg *ma, const char *name, const char *fmt, ...)
1839 if (ma == NULL) {
1840 ma = malloc(sizeof *ma, M_MOUNT, M_WAITOK | M_ZERO);
1841 SLIST_INIT(&ma->list);
1843 if (ma->error)
1844 return (ma);
1846 ma->v = realloc(ma->v, sizeof *ma->v * (ma->len + 2),
1848 ma->v[ma->len].iov_base = (void *)(uintptr_t)name;
1849 ma->v[ma->len].iov_len = strlen(name) + 1;
1850 ma->len++;
1859 SLIST_INSERT_HEAD(&ma->list, maa, next);
1863 ma->v[ma->len].iov_base = maa + 1;
1864 ma->v[ma->len].iov_len = len;
1865 ma->len++;
1867 return (ma);
1874 mount_argsu(struct mntarg *ma, const char *name, const void *val, int len)
1880 return (ma);
1881 if (ma == NULL) {
1882 ma = malloc(sizeof *ma, M_MOUNT, M_WAITOK | M_ZERO);
1883 SLIST_INIT(&ma->list);
1885 if (ma->error)
1886 return (ma);
1888 SLIST_INSERT_HEAD(&ma->list, maa, next);
1890 ma->error = copyinstr(val, tbuf, len, NULL);
1891 return (mount_arg(ma, name, tbuf, -1));
1900 mount_arg(struct mntarg *ma, const char *name, const void *val, int len)
1903 if (ma == NULL) {
1904 ma = malloc(sizeof *ma, M_MOUNT, M_WAITOK | M_ZERO);
1905 SLIST_INIT(&ma->list);
1907 if (ma->error)
1908 return (ma);
1910 ma->v = realloc(ma->v, sizeof *ma->v * (ma->len + 2),
1912 ma->v[ma->len].iov_base = (void *)(uintptr_t)name;
1913 ma->v[ma->len].iov_len = strlen(name) + 1;
1914 ma->len++;
1916 ma->v[ma->len].iov_base = (void *)(uintptr_t)val;
1918 ma->v[ma->len].iov_len = strlen(val) + 1;
1920 ma->v[ma->len].iov_len = len;
1921 ma->len++;
1922 return (ma);
1929 free_mntarg(struct mntarg *ma)
1933 while (!SLIST_EMPTY(&ma->list)) {
1934 maa = SLIST_FIRST(&ma->list);
1935 SLIST_REMOVE_HEAD(&ma->list, next);
1938 free(ma->v, M_MOUNT);
1939 free(ma, M_MOUNT);
1946 kernel_mount(struct mntarg *ma, uint64_t flags)
1951 KASSERT(ma != NULL, ("kernel_mount NULL ma"));
1952 KASSERT(ma->v != NULL, ("kernel_mount NULL ma->v"));
1953 KASSERT(!(ma->len & 1), ("kernel_mount odd ma->len (%d)", ma->len));
1955 auio.uio_iov = ma->v;
1956 auio.uio_iovcnt = ma->len;
1959 error = ma->error;
1962 free_mntarg(ma);
1972 struct mntarg *ma = NULL;
1984 ma = mount_arg(ma, cp, vp, (vp != NULL ? -1 : 0));
1988 error = kernel_mount(ma, flags);