Lines Matching full: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) */ member
194 unsigned char *trackbuf; /* current track (kmaloc()'d */
407 if (unit[drive].track % 2 != 0) in fd_select()
554 unit[drive].track = -1; in fd_calibrate()
559 unit[drive].track = 0; in fd_calibrate()
567 static int fd_seek(int drive, int track) in fd_seek() argument
573 printk("seeking drive %d to track %d\n",drive,track); in fd_seek()
577 if (unit[drive].track == track) { in fd_seek()
585 if (unit[drive].track < 0 && !fd_calibrate(drive)) { in fd_seek()
591 cnt = unit[drive].track/2 - track/2; in fd_seek()
594 if (track % 2 != 0) in fd_seek()
601 if (track % 2 != unit[drive].track % 2) in fd_seek()
603 unit[drive].track = track; in fd_seek()
734 if ((ulong)unit[drive].track >= unit[drive].type->precomp2) in raw_write()
736 else if ((ulong)unit[drive].track >= unit[drive].type->precomp1) in raw_write()
828 unsigned char track; member
863 hdr.magic, hdr.track, hdr.sect, hdr.ord, in amiga_read()
874 /* verify track */ in amiga_read()
875 if (hdr.track != unit[drive].track) { in amiga_read()
876 printk(KERN_INFO "MFM_TRACK: %d, %d\n", hdr.track, unit[drive].track); in amiga_read()
886 hdr.magic, hdr.track, hdr.sect, hdr.ord, scnt, in amiga_read()
943 hdr.track = unit[disk].track; in putsec()
984 unsigned char track, /* 0-80 */ member
1109 return dos_crc(&(hdr->track), 0xb2, 0x30, 3); /* precomputed magic */ in dos_hdr_crc()
1167 "track %d, unit %d for sector %d\n", in dos_read()
1168 unit[drive].track,drive,scnt); in dos_read()
1180 printk("(%3d,%d,%2d,%d) %x\n", hdr.track, hdr.side, in dos_read()
1189 if (hdr.track != unit[drive].track/unit[drive].type->heads) { in dos_read()
1191 hdr.track, in dos_read()
1192 unit[drive].track/unit[drive].type->heads); in dos_read()
1196 if (hdr.side != unit[drive].track%unit[drive].type->heads) { in dos_read()
1199 unit[drive].track%unit[drive].type->heads); in dos_read()
1212 printk(KERN_INFO "dos_read: no data sync on track " in dos_read()
1214 unit[drive].track, drive, scnt, hdr.sec); in dos_read()
1224 hdr.track,hdr.side,hdr.sec,hdr.len_desc,scnt); in dos_read()
1235 "sc=%d, %x %x\n", hdr.track, hdr.side, in dos_read()
1289 hdr.track=unit[drive].track/unit[drive].type->heads; in ms_putsec()
1290 hdr.side=unit[drive].track%unit[drive].type->heads; in ms_putsec()
1295 dos_encode_block((ushort *)raw,(unsigned char *) &hdr.track,28); in ms_putsec()
1364 * which is only true if we complete writing a track within three seconds
1424 static int get_track(int drive, int track) in get_track() argument
1429 if (unit[drive].track == track) in get_track()
1443 if (!fd_seek(drive, track)) in get_track()
1452 unit[drive].track = -1; in get_track()
1463 unsigned int cnt, block, track, sector; in amiflop_rw_cur_segment() local
1473 track = block / (floppy->dtype->sects * floppy->type->sect_mult); in amiflop_rw_cur_segment()
1477 printk("access to track %d, sector %d, with buffer at " in amiflop_rw_cur_segment()
1478 "0x%08lx\n", track, sector, data); in amiflop_rw_cur_segment()
1481 if (get_track(drive, track) == -1) in amiflop_rw_cur_segment()
1493 * setup a callback to write the track buffer in amiflop_rw_cur_segment()
1583 getprm.track=p->type->tracks; in fd_locked_ioctl()
1644 unit[drive].track = -1; in fd_probe()
1756 p->track = -1; in amiga_check_events()
1908 unit[i].track = -1; in amiga_floppy_probe()