Lines Matching refs:mdio

1043 mdcreate_malloc(struct md_s *sc, struct md_ioctl *mdio)
1050 if (mdio->md_options & ~(MD_AUTOUNIT | MD_COMPRESS | MD_RESERVE))
1052 if (mdio->md_sectorsize != 0 && !powerof2(mdio->md_sectorsize))
1055 if (mdio->md_options & MD_RESERVE)
1056 mdio->md_options &= ~MD_COMPRESS;
1057 if (mdio->md_fwsectors != 0)
1058 sc->fwsectors = mdio->md_fwsectors;
1059 if (mdio->md_fwheads != 0)
1060 sc->fwheads = mdio->md_fwheads;
1061 sc->flags = mdio->md_options & (MD_COMPRESS | MD_FORCE);
1065 if (mdio->md_options & MD_RESERVE) {
1126 mdcreate_vnode(struct md_s *sc, struct md_ioctl *mdio, struct thread *td)
1135 * to the mdio structure to protect against malicious software.
1137 fname = mdio->md_file;
1138 if ((void *)fname != (void *)(mdio + 1)) {
1149 flags = FREAD | ((mdio->md_options & MD_READONLY) ? 0 : FWRITE);
1173 if (mdio->md_fwsectors != 0)
1174 sc->fwsectors = mdio->md_fwsectors;
1175 if (mdio->md_fwheads != 0)
1176 sc->fwheads = mdio->md_fwheads;
1177 sc->flags = mdio->md_options & (MD_FORCE | MD_ASYNC);
1243 mdresize(struct md_s *sc, struct md_ioctl *mdio)
1252 if (mdio->md_mediasize <= 0 ||
1253 (mdio->md_mediasize % PAGE_SIZE) != 0)
1256 newpages = OFF_TO_IDX(round_page(mdio->md_mediasize));
1272 if ((mdio->md_options & MD_RESERVE) ||
1293 sc->mediasize = mdio->md_mediasize;
1301 mdcreate_swap(struct md_s *sc, struct md_ioctl *mdio, struct thread *td)
1319 npage = mdio->md_mediasize / PAGE_SIZE;
1320 if (mdio->md_fwsectors != 0)
1321 sc->fwsectors = mdio->md_fwsectors;
1322 if (mdio->md_fwheads != 0)
1323 sc->fwheads = mdio->md_fwheads;
1328 sc->flags = mdio->md_options & (MD_FORCE | MD_RESERVE);
1329 if (mdio->md_options & MD_RESERVE) {
1348 struct md_ioctl *mdio;
1357 mdio = (struct md_ioctl *)addr;
1358 if (mdio->md_version != MDIOVERSION)
1365 * mdio, and (b) the correct return value for an unknown ioctl
1371 switch (mdio->md_type) {
1380 if (mdio->md_sectorsize == 0)
1383 sectsize = mdio->md_sectorsize;
1384 if (sectsize > MAXPHYS || mdio->md_mediasize < sectsize)
1386 if (mdio->md_options & MD_AUTOUNIT)
1387 sc = mdnew(-1, &error, mdio->md_type);
1389 if (mdio->md_unit > INT_MAX)
1391 sc = mdnew(mdio->md_unit, &error, mdio->md_type);
1395 if (mdio->md_options & MD_AUTOUNIT)
1396 mdio->md_unit = sc->unit;
1397 sc->mediasize = mdio->md_mediasize;
1403 error = mdcreate_malloc(sc, mdio);
1415 error = mdcreate_vnode(sc, mdio, td);
1419 error = mdcreate_swap(sc, mdio, td);
1434 if (mdio->md_mediasize != 0 ||
1435 (mdio->md_options & ~MD_FORCE) != 0)
1438 sc = mdfind(mdio->md_unit);
1442 !(mdio->md_options & MD_FORCE))
1446 if ((mdio->md_options & ~(MD_FORCE | MD_RESERVE)) != 0)
1449 sc = mdfind(mdio->md_unit);
1452 if (mdio->md_mediasize < sc->sectorsize)
1454 if (mdio->md_mediasize < sc->mediasize &&
1456 !(mdio->md_options & MD_FORCE))
1458 return (mdresize(sc, mdio));
1460 sc = mdfind(mdio->md_unit);
1463 mdio->md_type = sc->type;
1464 mdio->md_options = sc->flags;
1465 mdio->md_mediasize = sc->mediasize;
1466 mdio->md_sectorsize = sc->sectorsize;
1468 error = copyout(sc->file, mdio->md_file,
1475 mdio->md_pad[i] = -1;
1477 mdio->md_pad[i++] = sc->unit;
1479 mdio->md_pad[0] = i - 1;