static int vnclone(struct dev_clone_args *ap) { int unit; unit = devfs_clone_bitmap_get(&DEVFS_CLONE_BITMAP(vn), 0); ap->a_dev = vn_create(unit, &DEVFS_CLONE_BITMAP(vn), 1); return 0; }
/* * Make a directory. */ int mkdir(char *dname, int dmode) { vnode_t *vp; struct vattr vattr; int error; vattr.va_type = VDIR; vattr.va_mode = dmode & PERMMASK; vattr.va_mask = AT_TYPE|AT_MODE; error = vn_create(dname, UIO_USERSPACE, &vattr, EXCL, 0, &vp, CRMKDIR, 0, PTOU(curproc)->u_cmask); if (error) return (set_errno(error)); VN_RELE(vp); return (0); }