Lines Matching defs:drive_state
401 static struct floppy_drive_struct drive_state[N_DRIVE];
607 return !current_type[drive] && !ITYPE(drive_state[drive].fd_device);
737 if (time_before(jiffies, drive_state[drive].select_date + drive_params[drive].select_delay))
752 drive_state[drive].flags);
756 &drive_state[drive].flags);
758 set_bit(FD_VERIFY_BIT, &drive_state[drive].flags);
761 if (drive_state[drive].maxblock) /* mark it changed */
763 &drive_state[drive].flags);
766 if (drive_state[drive].keep_data >= 0) {
776 drive_state[drive].last_checked = jiffies;
777 clear_bit(FD_DISK_NEWCHANGE_BIT, &drive_state[drive].flags);
819 drive_state[drive].select_date = jiffies;
832 drive_state[drive].select_date = jiffies;
849 (mode || drive_state[drive].track != NEED_1_RECAL))
850 drive_state[drive].track = NEED_2_RECAL;
946 delta = jiffies - drive_state[drive].first_read_date + HZ -
972 if (drive_state[drive].fd_ref == 0 || drive_params[drive].select_delay != 0)
1447 &drive_state[current_drive].flags);
1452 &drive_state[current_drive].flags);
1462 drive_state[current_drive].track = NEED_2_RECAL;
1495 ready_date = drive_state[current_drive].spinup_date + drive_params[current_drive].spinup;
1546 drive_state[current_drive].track = NEED_2_RECAL;
1551 if (drive_state[current_drive].track >= 0 &&
1552 drive_state[current_drive].track != reply_buffer[ST1] &&
1559 &drive_state[current_drive].flags);
1561 drive_state[current_drive].select_date = jiffies;
1563 drive_state[current_drive].track = reply_buffer[ST1];
1569 if (test_bit(FD_VERIFY_BIT, &drive_state[drive].flags)) {
1577 clear_bit(FD_VERIFY_BIT, &drive_state[drive].flags);
1579 &drive_state[drive].flags);
1586 &drive_state[drive].flags);
1589 &drive_state[drive].flags);
1602 if (!test_bit(FD_DISK_NEWCHANGE_BIT, &drive_state[current_drive].flags) &&
1609 &drive_state[current_drive].flags);
1614 if (drive_state[current_drive].track <= NEED_1_RECAL) {
1617 } else if (test_bit(FD_DISK_NEWCHANGE_BIT, &drive_state[current_drive].flags) &&
1619 (drive_state[current_drive].track <= NO_TRACK || drive_state[current_drive].track == raw_cmd->track)) {
1634 if (raw_cmd->track != drive_state[current_drive].track &&
1659 switch (drive_state[current_drive].track) {
1681 &drive_state[current_drive].flags);
1682 drive_state[current_drive].select_date = jiffies;
1692 drive_state[current_drive].track = NEED_1_RECAL;
1696 drive_state[current_drive].track = reply_buffer[ST1];
1909 drive_state[current_drive].first_read_date = 0;
1911 drive_state[current_drive].spinup_date = jiffies;
1922 return fd_wait_for_completion(drive_state[current_drive].select_date + drive_params[current_drive].select_delay,
1971 set_bit(FD_DISK_NEWCHANGE_BIT, &drive_state[current_drive].flags);
2073 probed_format = drive_state[drive].probed_format;
2077 drive_state[drive].probed_format = 0;
2081 drive_state[drive].probed_format = probed_format;
2093 drive_state[current_drive].probed_format++;
2104 drive_state[current_drive].track = NEED_2_RECAL;
2109 int type = ITYPE(drive_state[drive].fd_device);
2295 INFBOUND(drive_state[current_drive].maxblock, block);
2297 drive_state[current_drive].maxtrack = 1;
2306 write_errors[current_drive].first_error_generation = drive_state[current_drive].generation;
2309 write_errors[current_drive].last_error_generation = drive_state[current_drive].generation;
2330 if (!drive_state[current_drive].first_read_date)
2331 drive_state[current_drive].first_read_date = jiffies;
2579 test_bit(FD_NEED_TWADDLE_BIT, &drive_state[current_drive].flags)) &&
2804 test_bit(FD_DISK_CHANGED_BIT, &drive_state[current_drive].flags)) {
2811 drive_state[current_drive].probed_format = 0;
2820 _floppy = floppy_type + drive_params[current_drive].autodetect[drive_state[current_drive].probed_format];
2829 if (test_bit(FD_NEED_TWADDLE_BIT, &drive_state[current_drive].flags))
2901 set_bit(FD_DISK_NEWCHANGE_BIT, &drive_state[current_drive].flags);
3147 if (drive_state[drive].fd_ref > 1) {
3151 } else if (drive_state[drive].fd_ref) {
3175 drive_state[current_drive].track = NO_TRACK;
3256 if (!disk || ITYPE(drive_state[cnt].fd_device) != type)
3279 drive_state[current_drive].keep_data = -1;
3281 drive_state[current_drive].keep_data = 1;
3287 if (drive_state[current_drive].maxblock > user_params[drive].sect ||
3288 drive_state[current_drive].maxtrack ||
3365 int type = ITYPE(drive_state[drive].fd_device);
3401 int type = ITYPE(drive_state[drive].fd_device);
3449 if (drive_state[drive].fd_ref != 1)
3459 set_bit(FD_DISK_CHANGED_BIT, &drive_state[drive].flags);
3460 set_bit(FD_VERIFY_BIT, &drive_state[drive].flags);
3468 drive_state[drive].keep_data = 0;
3493 ret = drive_state[drive].flags;
3501 if (drive_state[drive].fd_ref != 1)
3539 outparam = &drive_state[drive];
3677 type = ITYPE(drive_state[drive].fd_device);
3693 err = get_floppy_geometry(drive, ITYPE(drive_state[drive].fd_device),
3791 v.spinup_date = drive_state[drive].spinup_date;
3792 v.select_date = drive_state[drive].select_date;
3793 v.first_read_date = drive_state[drive].first_read_date;
3794 v.probed_format = drive_state[drive].probed_format;
3795 v.track = drive_state[drive].track;
3796 v.maxblock = drive_state[drive].maxblock;
3797 v.maxtrack = drive_state[drive].maxtrack;
3798 v.generation = drive_state[drive].generation;
3799 v.keep_data = drive_state[drive].keep_data;
3800 v.fd_ref = drive_state[drive].fd_ref;
3801 v.fd_device = drive_state[drive].fd_device;
3802 v.last_checked = drive_state[drive].last_checked;
3803 v.dmabuf = (uintptr_t) drive_state[drive].dmabuf;
3804 v.bufblocks = drive_state[drive].bufblocks;
3973 if (!drive_state[drive].fd_ref--) {
3975 drive_state[drive].fd_ref = 0;
3977 if (!drive_state[drive].fd_ref)
3998 old_dev = drive_state[drive].fd_device;
4002 if (!drive_state[drive].fd_ref && (drive_params[drive].flags & FD_BROKEN_DCL)) {
4003 set_bit(FD_DISK_CHANGED_BIT, &drive_state[drive].flags);
4004 set_bit(FD_VERIFY_BIT, &drive_state[drive].flags);
4007 drive_state[drive].fd_ref++;
4044 drive_state[drive].fd_device = new_dev;
4055 drive_state[drive].last_checked = 0;
4057 &drive_state[drive].flags);
4060 if (test_bit(FD_DISK_CHANGED_BIT, &drive_state[drive].flags))
4062 if (test_bit(FD_OPEN_SHOULD_FAIL_BIT, &drive_state[drive].flags))
4067 !test_bit(FD_DISK_WRITABLE_BIT, &drive_state[drive].flags))
4074 drive_state[drive].fd_ref--;
4076 if (!drive_state[drive].fd_ref)
4092 if (test_bit(FD_DISK_CHANGED_BIT, &drive_state[drive].flags) ||
4093 test_bit(FD_VERIFY_BIT, &drive_state[drive].flags))
4096 if (time_after(jiffies, drive_state[drive].last_checked + drive_params[drive].checkfreq)) {
4103 if (test_bit(FD_DISK_CHANGED_BIT, &drive_state[drive].flags) ||
4104 test_bit(FD_VERIFY_BIT, &drive_state[drive].flags) ||
4130 set_bit(FD_OPEN_SHOULD_FAIL_BIT, &drive_state[drive].flags);
4180 if (test_bit(FD_DISK_CHANGED_BIT, &drive_state[drive].flags) ||
4181 test_bit(FD_VERIFY_BIT, &drive_state[drive].flags) ||
4191 cf = (test_bit(FD_DISK_CHANGED_BIT, &drive_state[drive].flags) ||
4192 test_bit(FD_VERIFY_BIT, &drive_state[drive].flags));
4197 drive_state[drive].maxblock = 0;
4198 drive_state[drive].maxtrack = 0;
4202 clear_bit(FD_DISK_CHANGED_BIT, &drive_state[drive].flags);
4204 drive_state[drive].generation++;
4215 set_capacity(disk, floppy_sizes[drive_state[drive].fd_device]);
4657 memset(&drive_state[drive], 0, sizeof(drive_state[drive]));
4659 set_bit(FD_DISK_NEWCHANGE_BIT, &drive_state[drive].flags);
4660 set_bit(FD_DISK_CHANGED_BIT, &drive_state[drive].flags);
4661 set_bit(FD_VERIFY_BIT, &drive_state[drive].flags);
4662 drive_state[drive].fd_device = -1;