mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 11:12:45 +00:00 
			
		
		
		
	 c3eaa73113
			
		
	
	
		c3eaa73113
		
	
	
	
	
		
			
			This enum was created to help put distinction between the commandset and the interface type, as ATAPI devices are simply ATA devices utilizing the SCSI commandset. Because we don't support ATAPI, putting such type of distinction is pointless, so let's remove this for now.
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <Kernel/FileSystem/SysFS/Component.h>
 | |
| #include <Kernel/FileSystem/SysFS/Subsystems/Devices/Storage/DeviceDirectory.h>
 | |
| #include <Kernel/KBuffer.h>
 | |
| 
 | |
| namespace Kernel {
 | |
| 
 | |
| class StorageDeviceAttributeSysFSComponent : public SysFSComponent {
 | |
| public:
 | |
|     enum class Type {
 | |
|         EndLBA,
 | |
|         SectorSize,
 | |
|         CommandSet,
 | |
|     };
 | |
| 
 | |
| public:
 | |
|     static NonnullRefPtr<StorageDeviceAttributeSysFSComponent> must_create(StorageDeviceSysFSDirectory const& device_directory, Type);
 | |
| 
 | |
|     virtual ErrorOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer&, OpenFileDescription*) const override;
 | |
|     virtual ~StorageDeviceAttributeSysFSComponent() {};
 | |
| 
 | |
|     virtual StringView name() const override;
 | |
| 
 | |
| protected:
 | |
|     ErrorOr<NonnullOwnPtr<KBuffer>> try_to_generate_buffer() const;
 | |
|     StorageDeviceAttributeSysFSComponent(StorageDeviceSysFSDirectory const& device, Type);
 | |
|     NonnullRefPtr<StorageDevice> m_device;
 | |
|     Type const m_type { Type::EndLBA };
 | |
| };
 | |
| 
 | |
| }
 |