20 #ifndef USBMASSSTORAGEDEVICE_H 21 #define USBMASSSTORAGEDEVICE_H 23 #include "modules/drivers/common/scsi/ScsiController.h" 24 #include "modules/system/usb/UsbConstants.h" 25 #include "modules/system/usb/UsbDevice.h" 26 #include "pedigree/kernel/compiler.h" 27 #include "pedigree/kernel/processor/types.h" 28 #include "pedigree/kernel/utilities/String.h" 29 #include "pedigree/kernel/utilities/utility.h" 42 size_t nUnit, uintptr_t pCommand, uint8_t nCommandSize,
43 uintptr_t pRespBuffer, uint16_t nRespBytes,
bool bWrite);
45 virtual void getUsbDeviceName(
String &str)
47 str =
"USB Mass Storage Device";
61 bool massStorageReset();
63 enum MassStorageRequests
66 UsbRequestType::Class | UsbRequestRecipient::Interface,
68 MassStorageReset = 0xFF,
69 MassStorageGetMaxLUN = 0xFE
74 CbwSig = HOST_TO_LITTLE32(0x43425355),
75 CswSig = HOST_TO_LITTLE32(0x53425355)
102 virtual size_t getNumUnits()
virtual void initialiseDriver()
Implemented by the driver class, initialises driver-specific stuff.
virtual bool hasSubtree() const
Do we expose our own Device tree?
virtual bool sendCommand(size_t nUnit, uintptr_t pCommand, uint8_t nCommandSize, uintptr_t pRespBuffer, uint16_t nRespBytes, bool bWrite)
virtual Device * getDevice()