Remove second await in read block because it somehow works now
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			Signed-off-by: Julien CLEMENT <julien.clement@epita.fr>
This commit is contained in:
		
							parent
							
								
									f44b808f67
								
							
						
					
					
						commit
						e84a2e5727
					
				@ -1,3 +1,4 @@
 | 
			
		||||
use crate::println;
 | 
			
		||||
 | 
			
		||||
use core::future::Future;
 | 
			
		||||
use core::pin::Pin;
 | 
			
		||||
 | 
			
		||||
@ -245,6 +245,7 @@ impl ATABus {
 | 
			
		||||
                complete = self.sector_count.read();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        self.wait_command_end();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub async fn read_block(&mut self, lba: u32) {
 | 
			
		||||
@ -256,13 +257,9 @@ impl ATABus {
 | 
			
		||||
 | 
			
		||||
        self.send_packet(packet);
 | 
			
		||||
 | 
			
		||||
        println!("Waiting packet send");
 | 
			
		||||
 | 
			
		||||
        // Wait packet is transmitted
 | 
			
		||||
        (*INTERRUPT_FUTURE).await;
 | 
			
		||||
 | 
			
		||||
        println!("Packet sent");
 | 
			
		||||
 | 
			
		||||
        let mut _size: usize = 0;
 | 
			
		||||
        unsafe {
 | 
			
		||||
            _size = ((self.address3.read() as usize) << 8) | self.address2.read() as usize;
 | 
			
		||||
@ -276,10 +273,8 @@ impl ATABus {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        println!("Waiting command send");
 | 
			
		||||
        // Wait command end
 | 
			
		||||
        (*INTERRUPT_FUTURE).await;
 | 
			
		||||
        println!("Command sent");
 | 
			
		||||
        //(*INTERRUPT_FUTURE).await;
 | 
			
		||||
 | 
			
		||||
        self.wait_command_end();
 | 
			
		||||
    }
 | 
			
		||||
@ -325,6 +320,6 @@ impl ATABus {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
pub async fn print_block() {
 | 
			
		||||
    DRIVE.lock().as_mut().unwrap().read_block(0).await;
 | 
			
		||||
    DRIVE.lock().as_mut().unwrap().read_block(500).await;
 | 
			
		||||
    serial_println!("{:x?}", DRIVE.lock().as_mut().unwrap().block);
 | 
			
		||||
}
 | 
			
		||||
@ -5,7 +5,7 @@ use x86_64::structures::idt::InterruptStackFrame;
 | 
			
		||||
 | 
			
		||||
fn disk_interrupt_handler(disk: u16) {
 | 
			
		||||
    crate::drivers::atapi::interrupt::mark_interrupt();
 | 
			
		||||
    println!("Received disk {} interrupt", disk);
 | 
			
		||||
    // println!("Received disk {} interrupt", disk);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub extern "x86-interrupt" fn disk1_interrupt_handler(_stack_frame: InterruptStackFrame) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user