mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 12:22:44 +00:00 
			
		
		
		
	 4dc3617f3c
			
		
	
	
		4dc3617f3c
		
	
	
	
	
		
			
			Like what happened with the PCI and USB code, this feels like the right thing to do because we can improve on the ATA capabilities and keep it distinguished from the rest of the subsystem.
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			571 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			571 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2021, Liav A. <liavalb@hotmail.co.il>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <AK/OwnPtr.h>
 | |
| #include <AK/RefPtr.h>
 | |
| #include <AK/Types.h>
 | |
| #include <Kernel/Devices/BlockDevice.h>
 | |
| #include <Kernel/Storage/StorageController.h>
 | |
| 
 | |
| namespace Kernel {
 | |
| 
 | |
| class AsyncBlockDeviceRequest;
 | |
| 
 | |
| class ATADevice;
 | |
| class ATAController
 | |
|     : public StorageController
 | |
|     , public Weakable<ATAController> {
 | |
| public:
 | |
|     virtual void start_request(const ATADevice&, AsyncBlockDeviceRequest&) = 0;
 | |
| 
 | |
| protected:
 | |
|     ATAController() = default;
 | |
| };
 | |
| }
 |