Lines Matching defs:fjp

84 static int fd_get_media_info(struct fcu_obj *fjp, caddr_t buf, int flag);
222 struct fcu_obj *fjp = NULL;
228 (void) fd_getdrive(dev, &fjp, &fdp);
231 * verifying fjp and fdp and returned unit value is not used.
233 if (fjp && fdp) {
234 *result = fjp->fj_dip;
339 struct fcu_obj *fjp;
423 fjp = fdp->d_obj = ddi_get_driver_private(dip);
425 mutex_init(&fjp->fj_lock, NULL, MUTEX_DRIVER, *fjp->fj_iblock);
428 fjp->fj_drive = (struct fd_drive *)(fdp + 1);
429 fjp->fj_chars = (struct fd_char *)(fjp->fj_drive + 1);
430 fjp->fj_attr = (struct fdattr *)(fjp->fj_chars + 1);
437 *fjp->fj_drive = dfd_525HD;
443 *fjp->fj_drive = dfd_350HD;
450 if (mode_3D && (fjp->fj_fdc->c_flags & FCFLG_3DMODE))
460 *fjp->fj_drive = dfd_525DD;
466 *fjp->fj_drive = dfd_350HD;
473 *fjp->fj_drive = dfd_350ED;
482 *fjp->fj_chars = *defchar[fdp->d_deffdtype];
483 *fjp->fj_attr = fdtypes[fdp->d_deffdtype];
486 fjp->fj_rotspd = fdtypes[fdp->d_deffdtype].fda_rotatespd;
505 fdp->d_iostat->ks_lock = &fjp->fj_lock;
509 fjp->fj_data = (caddr_t)fdp;
510 fjp->fj_flags |= FUNIT_DRVATCH;
541 fjp->fj_drive = NULL;
542 fjp->fj_chars = NULL;
543 fjp->fj_attr = NULL;
544 mutex_destroy(&fjp->fj_lock);
558 struct fcu_obj *fjp;
578 fjp = (struct fcu_obj *)fdp->d_obj;
579 fjp->fj_flags &= ~FUNIT_DRVATCH;
580 fjp->fj_data = NULL;
581 fjp->fj_drive = NULL;
582 fjp->fj_chars = NULL;
583 fjp->fj_attr = NULL;
585 mutex_destroy(&fjp->fj_lock);
651 struct fcu_obj *fjp = NULL;
661 unit = fd_getdrive(dev, &fjp, &fdp);
662 if (!fjp || !fdp)
698 fjp->fj_ops->fco_select(fjp, unit, 1);
699 if (fjp->fj_ops->fco_getchng(fjp, unit) != 0) {
700 if (fjp->fj_ops->fco_rcseek(fjp, unit, -1, 0)) {
703 fjp->fj_ops->fco_select(fjp, unit, 0);
707 fjp->fj_flags &= ~(FUNIT_LABELOK | FUNIT_UNLABELED);
711 fjp->fj_ops->fco_select(fjp, unit, 0);
718 rval = fdgetlabel(fjp, unit);
719 fjp->fj_ops->fco_select(fjp, unit, 0);
764 fdgetlabel(struct fcu_obj *fjp, int unit)
780 fdp = (struct fdisk *)fjp->fj_data;
781 fjp->fj_flags &= ~(FUNIT_UNLABELED);
810 fjp->fj_flags &= ~FUNIT_CHAROK;
813 if (!(rval = fjp->fj_ops->fco_rw(fjp, unit,
814 FDREAD, 1, 0, fjp->fj_chars->fdc_secptrack,
818 fjp->fj_ops->fco_rw(fjp, unit, FDREAD, 1,
819 0, fjp->fj_chars->fdc_secptrack + 1,
823 !(rval = fjp->fj_ops->fco_rw(fjp, unit,
836 *fjp->fj_chars = *defchar[fdp->d_curfdtype];
837 *fjp->fj_attr = fdtypes[fdp->d_curfdtype];
844 if (fjp->fj_chars->fdc_transfer_rate == 250 &&
845 fjp->fj_rotspd > fjp->fj_attr->fda_rotatespd) {
850 fjp->fj_attr->fda_rotatespd = 360;
851 fjp->fj_chars->fdc_transfer_rate = 300;
852 fjp->fj_chars->fdc_medium = 5;
854 if ((2 * fjp->fj_chars->fdc_ncyl) ==
857 fjp->fj_chars->fdc_steps = 2;
859 fjp->fj_chars->fdc_steps = 1;
874 unit, fjp->fj_chars->fdc_ncyl, fjp->fj_chars->fdc_secptrack,
875 fjp->fj_chars->fdc_steps, fjp->fj_attr->fda_rotatespd,
876 fjp->fj_attr->fda_intrlv));
900 fjp->fj_chars->fdc_ncyl = label->dkl_pcyl;
901 fjp->fj_chars->fdc_nhead = label->dkl_nhead;
902 fjp->fj_chars->fdc_secptrack = (label->dkl_nsect * DEV_BSIZE) /
903 fjp->fj_chars->fdc_sec_size;
904 if (defchar[fdp->d_deffdtype]->fdc_ncyl == 2 * fjp->fj_chars->fdc_ncyl)
905 fjp->fj_chars->fdc_steps = 2;
907 fjp->fj_chars->fdc_steps = 1;
909 fjp->fj_attr->fda_rotatespd = label->dkl_rpm;
910 fjp->fj_attr->fda_intrlv = label->dkl_intrlv;
928 fjp->fj_flags |= FUNIT_LABELOK;
941 fjp->fj_chars->fdc_ncyl, fjp->fj_chars->fdc_nhead,
942 fjp->fj_chars->fdc_secptrack);
943 fjp->fj_flags |= FUNIT_UNLABELED;
955 struct fcu_obj *fjp = NULL;
966 DEBUG_ASSIGN fd_getdrive(dev, &fjp, &fdp);
969 * verifying fjp and fdp and returned unit value is not used.
971 if (!fjp || !fdp)
1029 struct fcu_obj *fjp;
1037 (void) fd_getdrive(bp->b_edev, &fjp, &fdp);
1045 if (fjp->fj_chars->fdc_sec_size > NBPSCTR && (bp->b_blkno & 1)) {
1074 if (bp->b_bcount % fjp->fj_chars->fdc_sec_size) {
1078 fjp->fj_chars->fdc_sec_size));
1087 mutex_enter(&fjp->fj_lock);
1095 if (!(fjp->fj_flags & FUNIT_BUSY)) {
1096 fdstart(fjp);
1098 mutex_exit(&fjp->fj_lock);
1118 fdstart(struct fcu_obj *fjp)
1121 struct fdisk *fdp = (struct fdisk *)fjp->fj_data;
1132 ASSERT(MUTEX_HELD(&fjp->fj_lock));
1133 fjp->fj_flags |= FUNIT_BUSY;
1141 mutex_exit(&fjp->fj_lock);
1150 ASSERT(DRIVE(bp->b_edev) == ddi_get_instance(fjp->fj_dip));
1151 unit = fjp->fj_unit;
1152 fjp->fj_ops->fco_select(fjp, unit, 1);
1161 chp = fjp->fj_chars;
1232 bp->b_error = fjp->fj_ops->fco_rw(fjp, unit,
1262 fjp->fj_ops->fco_select(fjp, unit, 0);
1263 mutex_enter(&fjp->fj_lock);
1266 fjp->fj_flags ^= FUNIT_BUSY;
1283 struct fcu_obj *fjp = NULL;
1291 unit = fd_getdrive(dev, &fjp, &fdp);
1292 if (!fjp || !fdp)
1301 fjp->fj_ops->fco_dkinfo(fjp, &cpy.dki);
1302 cpy.dki.dki_cnum = FDCTLR(fjp->fj_unit);
1303 cpy.dki.dki_unit = FDUNIT(fjp->fj_unit);
1311 cpy.dkg.dkg_nsect = fjp->fj_chars->fdc_secptrack;
1314 if (fjp->fj_flags & FUNIT_LABELOK)
1315 cpy.dkg.dkg_nsect = (fjp->fj_chars->fdc_secptrack *
1316 fjp->fj_chars->fdc_sec_size) / DEV_BSIZE;
1318 cpy.dkg.dkg_nsect = fjp->fj_chars->fdc_secptrack;
1320 cpy.dkg.dkg_pcyl = fjp->fj_chars->fdc_ncyl;
1321 cpy.dkg.dkg_ncyl = fjp->fj_chars->fdc_ncyl;
1322 cpy.dkg.dkg_nhead = fjp->fj_chars->fdc_nhead;
1323 cpy.dkg.dkg_intrlv = fjp->fj_attr->fda_intrlv;
1324 cpy.dkg.dkg_rpm = fjp->fj_attr->fda_rotatespd;
1338 mutex_enter(&fjp->fj_lock);
1339 fjp->fj_chars->fdc_ncyl = cpy.dkg.dkg_ncyl;
1340 fjp->fj_chars->fdc_nhead = cpy.dkg.dkg_nhead;
1341 fjp->fj_chars->fdc_secptrack = cpy.dkg.dkg_nsect;
1342 fjp->fj_attr->fda_intrlv = cpy.dkg.dkg_intrlv;
1343 fjp->fj_attr->fda_rotatespd = cpy.dkg.dkg_rpm;
1345 mutex_exit(&fjp->fj_lock);
1357 nblks = fjp->fj_chars->fdc_nhead * fjp->fj_chars->fdc_secptrack;
1444 nblks = fjp->fj_chars->fdc_nhead *
1445 fjp->fj_chars->fdc_secptrack;
1446 mutex_enter(&fjp->fj_lock);
1457 mutex_exit(&fjp->fj_lock);
1462 mutex_enter(&fjp->fj_lock);
1469 fjp->fj_ops->fco_select(fjp, unit, 1);
1470 rval = fdgetlabel(fjp, unit);
1471 fjp->fj_ops->fco_select(fjp, unit, 0);
1473 mutex_exit(&fjp->fj_lock);
1478 fd_build_user_vtoc(fjp, fdp, &vtoc);
1479 mutex_exit(&fjp->fj_lock);
1542 mutex_enter(&fjp->fj_lock);
1544 if ((rval = fd_build_label_vtoc(fjp, fdp, &vtoc, label)) == 0) {
1545 fjp->fj_ops->fco_select(fjp, unit, 1);
1546 rval = fjp->fj_ops->fco_rw(fjp, unit, FDWRITE,
1548 fjp->fj_ops->fco_select(fjp, unit, 0);
1550 mutex_exit(&fjp->fj_lock);
1571 if (ddi_copyout(fjp->fj_chars, (void *)arg,
1590 mutex_enter(&fjp->fj_lock);
1591 fjp->fj_attr->fda_rotatespd = 360;
1592 mutex_exit(&fjp->fj_lock);
1599 mutex_enter(&fjp->fj_lock);
1600 *(fjp->fj_chars) = cpy.fdchar;
1602 fjp->fj_flags &= ~FUNIT_CHAROK;
1603 mutex_exit(&fjp->fj_lock);
1621 mutex_enter(&fjp->fj_lock);
1623 *fjp->fj_chars = *defchar[fdp->d_curfdtype];
1624 *fjp->fj_attr = fdtypes[fdp->d_curfdtype];
1627 fjp->fj_flags &= ~FUNIT_CHAROK;
1628 mutex_exit(&fjp->fj_lock);
1633 fjp->fj_flags &= ~(FUNIT_LABELOK | FUNIT_UNLABELED);
1642 mutex_enter(&fjp->fj_lock);
1643 fjp->fj_ops->fco_select(fjp, unit, 1);
1645 if (fjp->fj_flags & FUNIT_CHANGED)
1649 fjp->fj_flags &= ~FUNIT_CHANGED;
1651 if (fjp->fj_ops->fco_getchng(fjp, unit)) {
1653 fjp->fj_ops->fco_resetchng(fjp, unit);
1657 if (fjp->fj_ops->fco_getchng(fjp, unit)) {
1662 if (fjp->fj_flags & FUNIT_CHGDET)
1668 fjp->fj_flags |= FUNIT_CHGDET;
1674 fjp->fj_flags &= ~FUNIT_CHGDET;
1678 fjp->fj_flags &= ~FUNIT_CHGDET;
1683 if (fjp->fj_flags & FUNIT_WPROT) {
1688 fjp->fj_ops->fco_select(fjp, unit, 0);
1689 mutex_exit(&fjp->fj_lock);
1696 if (ddi_copyout(fjp->fj_drive, (void *)arg,
1707 mutex_enter(&fjp->fj_lock);
1708 *(fjp->fj_drive) = cpy.drvchar;
1710 fjp->fj_flags &= ~FUNIT_CHAROK;
1711 mutex_exit(&fjp->fj_lock);
1725 rval = fd_get_media_info(fjp, (caddr_t)arg, flag);
1781 fjp->fj_chars->fdc_sec_size;
1792 spt = fjp->fj_chars->fdc_secptrack; /* sec/trk */
1793 spc = fjp->fj_chars->fdc_nhead * spt; /* sec/cyl */
1797 fjp->fj_flags &=
1802 fjp->fj_ops->fco_select(fjp, unit, 1);
1803 rval = fjp->fj_ops->fco_format(fjp, unit, cyl, head,
1805 fjp->fj_ops->fco_select(fjp, unit, 0);
1817 rval = fd_rawioctl(fjp, unit, (caddr_t)arg, flag);
1831 fd_build_user_vtoc(struct fcu_obj *fjp, struct fdisk *fdp, struct vtoc *vtocp)
1850 if (fjp->fj_flags & FUNIT_LABELOK) {
1854 vtocp->v_sectorsz = fjp->fj_chars->fdc_sec_size;
1876 fd_build_label_vtoc(struct fcu_obj *fjp, struct fdisk *fdp, struct vtoc *vtocp,
1902 nblks = (fjp->fj_chars->fdc_nhead * fjp->fj_chars->fdc_secptrack *
1903 fjp->fj_chars->fdc_sec_size) / DEV_BSIZE;
1904 if (nblks == 0 || fjp->fj_chars->fdc_ncyl == 0)
1922 if (ncyl > (long)fjp->fj_chars->fdc_ncyl) {
1974 labelp->dkl_pcyl = fjp->fj_chars->fdc_ncyl;
1975 labelp->dkl_ncyl = fjp->fj_chars->fdc_ncyl;
1976 labelp->dkl_nhead = fjp->fj_chars->fdc_nhead;
1983 labelp->dkl_nsect = (fjp->fj_chars->fdc_secptrack *
1984 fjp->fj_chars->fdc_sec_size) / DEV_BSIZE;
1985 labelp->dkl_intrlv = fjp->fj_attr->fda_intrlv;
1986 labelp->dkl_rpm = fjp->fj_attr->fda_rotatespd;
2005 fd_rawioctl(struct fcu_obj *fjp, int unit, caddr_t arg, int mode)
2017 if (fjp->fj_chars->fdc_medium != 3 && fjp->fj_chars->fdc_medium != 5) {
2073 fjp->fj_flags &= ~(FUNIT_LABELOK | FUNIT_UNLABELED);
2132 fjp->fj_ops->fco_select(fjp, unit, 1);
2133 rval = fjp->fj_ops->fco_rwioctl(fjp, unit, (caddr_t)&fdr);
2143 fjp->fj_ops->fco_select(fjp, unit, 0);
2158 struct fcu_obj *fjp = NULL;
2177 * verifying fjp and fdp and returned unit value is not used.
2179 (void) fd_getdrive(dev, &fjp, &fdp);
2180 if (!fjp || !fdp)
2194 struct fcu_obj *fjp;
2203 DEBUG_ASSIGN fd_getdrive((dev_t)arg, &fjp, &fdp);
2219 mutex_enter(&fjp->fj_lock);
2221 mutex_exit(&fjp->fj_lock);
2225 fd_get_media_state(struct fcu_obj *fjp, int unit)
2229 if (fjp->fj_ops->fco_getchng(fjp, unit)) {
2231 fjp->fj_ops->fco_resetchng(fjp, unit);
2232 if (fjp->fj_ops->fco_getchng(fjp, unit)) {
2233 if (fjp->fj_flags & FUNIT_CHGDET) {
2242 fjp->fj_flags |= FUNIT_CHGDET;
2246 fjp->fj_flags &= ~FUNIT_CHGDET;
2250 fjp->fj_flags &= ~FUNIT_CHGDET;
2261 struct fcu_obj *fjp;
2266 unit = fd_getdrive(dev, &fjp, &fdp);
2268 mutex_enter(&fjp->fj_lock);
2270 fjp->fj_ops->fco_select(fjp, unit, 1);
2271 fdp->d_media_state = fd_get_media_state(fjp, unit);
2276 fjp->fj_ops->fco_select(fjp, unit, 0);
2282 if (cv_wait_sig(&fdp->d_statecv, &fjp->fj_lock) == 0) {
2284 mutex_exit(&fjp->fj_lock);
2287 fjp->fj_ops->fco_select(fjp, unit, 1);
2288 fdp->d_media_state = fd_get_media_state(fjp, unit);
2292 err = fdgetlabel(fjp, unit);
2294 fjp->fj_ops->fco_select(fjp, unit, 0);
2295 mutex_exit(&fjp->fj_lock);
2299 fjp->fj_ops->fco_select(fjp, unit, 0);
2300 mutex_exit(&fjp->fj_lock);
2311 fd_get_media_info(struct fcu_obj *fjp, caddr_t buf, int flag)
2317 media_info.dki_lbsize = fjp->fj_chars->fdc_sec_size;
2318 media_info.dki_capacity = fjp->fj_chars->fdc_ncyl *
2319 fjp->fj_chars->fdc_secptrack * fjp->fj_chars->fdc_nhead;