static void continue_read(struct ide_state *ide) { /* reset the totals */ ide->buffer_offset = 0; /* clear the buffer ready flag */ ide->status &= ~IDE_STATUS_BUFFER_READY; if (ide->master_password_enable || ide->user_password_enable) { security_error(ide); ide->sector_count = 0; ide->bus_master_status &= ~IDE_BUSMASTER_STATUS_ACTIVE; ide->dma_active = 0; return; } /* if there is more data to read, keep going */ if (ide->sector_count > 0) ide->sector_count--; if (ide->sector_count > 0) read_next_sector(ide); else { ide->bus_master_status &= ~IDE_BUSMASTER_STATUS_ACTIVE; ide->dma_active = 0; } }
void ide_controller_device::read_buffer_empty() { /* reset the totals */ buffer_offset = 0; /* clear the buffer ready and busy flag */ status &= ~IDE_STATUS_BUFFER_READY; status &= ~IDE_STATUS_BUSY; error = IDE_ERROR_DEFAULT; set_dmarq(0); if (master_password_enable || user_password_enable) { security_error(); sector_count = 0; return; } /* if there is more data to read, keep going */ if (sector_count > 0) sector_count--; if (sector_count > 0) read_next_sector(); }