Lines Matching refs:track

10  *  - added support for 40 Track 5.25" drives, 80-track hopefully behaves
29 * - usage ioctl(d, RAW_TRACK, ptr); the raw track buffer (MFM-encoded data
93 #define DSKTRACK0 (0x1<<4) /* head at track zero when low */
108 #define DSKSTEP (0x1) /* pulse low to step head 1 track */
154 #define FD_RECALIBRATE 0x07 /* move to track 0 */
155 #define FD_SEEK 0x0F /* seek track */
160 #define FD_FORMAT 0x4D /* format one track */
166 #define FLOPPY_MAX_SECTORS 22 /* Max. Number of sectors per track */
170 int sects; /* sectors per track */
171 int (*read_fkt)(int); /* read whole track */
172 void (*write_fkt)(int); /* write whole track */
180 unsigned int read_size; /* raw read size for one track */
181 unsigned int write_size; /* raw write size for one track */
183 unsigned int precomp1; /* start track for precomp 1 */
184 unsigned int precomp2; /* start track for precomp 2 */
193 int track; /* current track (-1 == unknown) */
194 unsigned char *trackbuf; /* current track (kmaloc()'d */
406 if (unit[drive].track % 2 != 0)
553 unit[drive].track = -1;
558 unit[drive].track = 0;
566 static int fd_seek(int drive, int track)
572 printk("seeking drive %d to track %d\n",drive,track);
576 if (unit[drive].track == track) {
584 if (unit[drive].track < 0 && !fd_calibrate(drive)) {
590 cnt = unit[drive].track/2 - track/2;
593 if (track % 2 != 0)
600 if (track % 2 != unit[drive].track % 2)
602 unit[drive].track = track;
733 if ((ulong)unit[drive].track >= unit[drive].type->precomp2)
735 else if ((ulong)unit[drive].track >= unit[drive].type->precomp1)
827 unsigned char track;
862 hdr.magic, hdr.track, hdr.sect, hdr.ord,
873 /* verify track */
874 if (hdr.track != unit[drive].track) {
875 printk(KERN_INFO "MFM_TRACK: %d, %d\n", hdr.track, unit[drive].track);
885 hdr.magic, hdr.track, hdr.sect, hdr.ord, scnt,
942 hdr.track = unit[disk].track;
983 unsigned char track, /* 0-80 */
1108 return dos_crc(&(hdr->track), 0xb2, 0x30, 3); /* precomputed magic */
1166 "track %d, unit %d for sector %d\n",
1167 unit[drive].track,drive,scnt);
1179 printk("(%3d,%d,%2d,%d) %x\n", hdr.track, hdr.side,
1188 if (hdr.track != unit[drive].track/unit[drive].type->heads) {
1190 hdr.track,
1191 unit[drive].track/unit[drive].type->heads);
1195 if (hdr.side != unit[drive].track%unit[drive].type->heads) {
1198 unit[drive].track%unit[drive].type->heads);
1211 printk(KERN_INFO "dos_read: no data sync on track "
1213 unit[drive].track, drive, scnt, hdr.sec);
1223 hdr.track,hdr.side,hdr.sec,hdr.len_desc,scnt);
1234 "sc=%d, %x %x\n", hdr.track, hdr.side,
1288 hdr.track=unit[drive].track/unit[drive].type->heads;
1289 hdr.side=unit[drive].track%unit[drive].type->heads;
1294 dos_encode_block((ushort *)raw,(unsigned char *) &hdr.track,28);
1363 * which is only true if we complete writing a track within three seconds
1423 static int get_track(int drive, int track)
1428 if (unit[drive].track == track)
1442 if (!fd_seek(drive, track))
1451 unit[drive].track = -1;
1462 unsigned int cnt, block, track, sector;
1472 track = block / (floppy->dtype->sects * floppy->type->sect_mult);
1476 printk("access to track %d, sector %d, with buffer at "
1477 "0x%08lx\n", track, sector, data);
1480 if (get_track(drive, track) == -1)
1492 * setup a callback to write the track buffer
1582 getprm.track=p->type->tracks;
1643 unit[drive].track = -1;
1755 p->track = -1;
1904 unit[i].track = -1;