|
|
| version 1.15, 2004/05/13 23:49:15 | version 1.16, 2004/05/19 22:52:41 |
|---|---|
| Line 1019 fd_attach(device_t dev) | Line 1019 fd_attach(device_t dev) |
| int typemynor; | int typemynor; |
| int typesize; | int typesize; |
| #endif | #endif |
| static int cdevsw_add_done = 0; | |
| fd = device_get_softc(dev); | fd = device_get_softc(dev); |
| if (!cdevsw_add_done) { | cdevsw_add(&fd_cdevsw, -1 << 6, fd->fdu << 6); |
| cdevsw_add(&fd_cdevsw); /* XXX */ | |
| cdevsw_add_done++; | |
| } | |
| make_dev(&fd_cdevsw, (fd->fdu << 6), | make_dev(&fd_cdevsw, (fd->fdu << 6), |
| UID_ROOT, GID_OPERATOR, 0640, "rfd%d", fd->fdu); | UID_ROOT, GID_OPERATOR, 0640, "rfd%d", fd->fdu); |
| Line 2102 retrier(struct fdc_data *fdc) | Line 2098 retrier(struct fdc_data *fdc) |
| fail: | fail: |
| { | { |
| int printerror = (fd->options & FDOPT_NOERRLOG) == 0; | int printerror = (fd->options & FDOPT_NOERRLOG) == 0; |
| dev_t sav_b_dev = bp->b_dev; | dev_t sav_b_dev; |
| /* Trick diskerr */ | /* Trick diskerr */ |
| bp->b_dev = makedev(major(bp->b_dev), | if (printerror) { |
| sav_b_dev = bp->b_dev; | |
| bp->b_dev = make_sub_dev(bp->b_dev, | |
| (FDUNIT(minor(bp->b_dev))<<3)|RAW_PART); | (FDUNIT(minor(bp->b_dev))<<3)|RAW_PART); |
| if (printerror) | |
| diskerr(bp, "hard error", LOG_PRINTF, | diskerr(bp, "hard error", LOG_PRINTF, |
| fdc->fd->skip / DEV_BSIZE, | fdc->fd->skip / DEV_BSIZE, |
| (struct disklabel *)NULL); | (struct disklabel *)NULL); |
| bp->b_dev = sav_b_dev; | bp->b_dev = sav_b_dev; |
| } | |
| if (printerror) { | if (printerror) { |
| if (fdc->flags & FDC_STAT_VALID) | if (fdc->flags & FDC_STAT_VALID) |
| printf( | printf( |