|
The Pedigree Project
0.1
|
Inheritance diagram for UsbMassStorageDevice:
Collaboration diagram for UsbMassStorageDevice:Classes | |
| struct | Cbw |
| struct | Csw |
Public Member Functions | |
| UsbMassStorageDevice (UsbDevice *dev) | |
| virtual void | initialiseDriver () |
| Implemented by the driver class, initialises driver-specific stuff. More... | |
| virtual bool | sendCommand (size_t nUnit, uintptr_t pCommand, uint8_t nCommandSize, uintptr_t pRespBuffer, uint16_t nRespBytes, bool bWrite) |
| virtual void | getUsbDeviceName (String &str) |
| virtual bool | hasSubtree () const |
| Do we expose our own Device tree? | |
| virtual Device * | getDevice () |
Public Member Functions inherited from ScsiController | |
| ScsiController (Controller *pDev) | |
| virtual uint64_t | executeRequest (uint64_t p1, uint64_t p2, uint64_t p3, uint64_t p4, uint64_t p5, uint64_t p6, uint64_t p7, uint64_t p8) |
Public Member Functions inherited from Controller | |
| Controller (Device *pDev) | |
| virtual Type | getType () |
| virtual void | getName (String &str) |
| virtual void | dump (String &str) |
Public Member Functions inherited from Device | |
| Device (Device *p) | |
| Device * | getParent () const |
| void | setParent (Device *p) |
| virtual String | getSpecificType () |
| virtual void | setSpecificType (String str) |
| void | setPciPosition (uint32_t bus, uint32_t device, uint32_t func) |
| void | setPciIdentifiers (uint8_t classCode, uint8_t subclassCode, uint16_t vendorId, uint16_t deviceId, uint8_t progIf) |
| void | setPciConfigHeader (const PciBus::ConfigSpace &space) |
| PciBus::ConfigSpace | getPciConfigHeader () const |
| uint8_t | getPciClassCode () |
| uint8_t | getPciSubclassCode () |
| uint16_t | getPciVendorId () |
| uint16_t | getPciDeviceId () |
| uint8_t | getPciProgInterface () |
| uint32_t | getPciBusPosition () |
| uint32_t | getPciDevicePosition () |
| uint32_t | getPciFunctionNumber () |
| virtual Vector< Address * > & | addresses () |
| virtual uintptr_t | getInterruptNumber () |
| virtual void | setInterruptNumber (uintptr_t n) |
| void | addChild (Device *pDevice) |
| Device * | getChild (size_t n) |
| size_t | getNumChildren () |
| void | removeChild (size_t n) |
| void | removeChild (Device *d) |
| void | replaceChild (Device *src, Device *dest) |
Public Member Functions inherited from RequestQueue | |
| RequestQueue (const String &name) | |
| virtual void | initialise () |
| virtual void | destroy () |
| MUST_USE_RESULT uint64_t | addRequest (size_t priority, uint64_t p1=0, uint64_t p2=0, uint64_t p3=0, uint64_t p4=0, uint64_t p5=0, uint64_t p6=0, uint64_t p7=0, uint64_t p8=0) |
| MUST_USE_RESULT uint64_t | addRequest (size_t priority, ActionOnDuplicate action, uint64_t p1=0, uint64_t p2=0, uint64_t p3=0, uint64_t p4=0, uint64_t p5=0, uint64_t p6=0, uint64_t p7=0, uint64_t p8=0) |
| uint64_t | addAsyncRequest (size_t priority, uint64_t p1=0, uint64_t p2=0, uint64_t p3=0, uint64_t p4=0, uint64_t p5=0, uint64_t p6=0, uint64_t p7=0, uint64_t p8=0) |
| void | halt () |
| void | resume () |
Public Member Functions inherited from UsbDevice | |
| UsbDevice (UsbHub *pHub, uint8_t nPort, UsbSpeed speed) | |
| Default constructor. | |
| UsbDevice (UsbDevice *pDev) | |
| Copy constructor. | |
| virtual | ~UsbDevice () |
| Destructor. | |
| void | initialise (uint8_t nAddress) |
| Initialises the device at the given address. More... | |
| uint8_t | getAddress () |
| Returns the current address of the device. | |
| uint8_t | getPort () |
| Returns the number of the port on which the device is connected. | |
| UsbSpeed | getSpeed () |
| Returns the speed at which the device operates. | |
| UsbState | getUsbState () |
| Returns the current state of the device. | |
| DeviceDescriptor * | getDescriptor () |
| Returns the device descriptor of the device. | |
| ConfigDescriptor * | getConfiguration () |
| Returns the configuration in use. | |
| Interface * | getInterface () |
| Returns the interface in use. | |
| void | useConfiguration (uint8_t nConfig) |
| Switches to the given configuration. | |
| void | useInterface (uint8_t nInterface) |
| Switches to the given interface. | |
| UsbDeviceContainer * | getContainer () const |
| Gets our Device container, for replacing parents on hubs etc. | |
Protected Member Functions | |
| virtual size_t | getNumUnits () |
Protected Member Functions inherited from ScsiController | |
| void | searchDisks () |
Protected Member Functions inherited from Device | |
| NOT_COPYABLE_OR_ASSIGNABLE (Device) | |
Protected Member Functions inherited from RequestQueue | |
| RequestQueue (const RequestQueue &) | |
| void | operator= (const RequestQueue &) |
| virtual bool | compareRequests (const Request &a, const Request &b) |
| bool | isRequestValid (const Request *r) |
| int | work () |
| Request * | getNextRequest () |
Protected Member Functions inherited from UsbDevice | |
| ssize_t | doSync (Endpoint *pEndpoint, UsbPid pid, uintptr_t pBuffer, size_t nBytes, size_t timeout) |
| ssize_t | syncIn (Endpoint *pEndpoint, uintptr_t pBuffer, size_t nBytes, size_t timeout=5000) |
| ssize_t | syncOut (Endpoint *pEndpoint, uintptr_t pBuffer, size_t nBytes, size_t timeout=5000) |
| void | addInterruptInHandler (Endpoint *pEndpoint, uintptr_t pBuffer, uint16_t nBytes, void(*pCallback)(uintptr_t, ssize_t), uintptr_t pParam=0) |
| bool | controlRequest (uint8_t nRequestType, uint8_t nRequest, uint16_t nValue, uint16_t nIndex, uint16_t nLength=0, uintptr_t pBuffer=0) |
| Performs an USB control request. | |
| uint16_t | getStatus () |
| Gets device's current status. | |
| bool | clearEndpointHalt (Endpoint *pEndpoint) |
| Clears a halt on the given endpoint. | |
| void * | getDescriptor (uint8_t nDescriptorType, uint8_t nDescriptorIndex, uint16_t nBytes, uint8_t requestType=0) |
| Gets a descriptor from the device. More... | |
| uint8_t | getDescriptorLength (uint8_t nDescriptorType, uint8_t nDescriptorIndex, uint8_t requestType=0) |
| Gets a descriptor's length from the device. More... | |
| String | getString (uint8_t nString) |
| Gets a string. More... | |
Private Member Functions | |
| bool | massStorageReset () |
Private Attributes | |
| struct UsbMassStorageDevice::Cbw | PACKED |
| struct UsbMassStorageDevice::Csw | PACKED |
| size_t | m_nUnits |
| Endpoint * | m_pInEndpoint |
| Endpoint * | m_pOutEndpoint |
Additional Inherited Members | |
Public Types inherited from Device | |
| enum | Type { Generic, Root, Disk, Bus, Display, Network, Sound, Console, Mouse, Controller, UsbController, UsbGeneric, UsbContainer } |
| typedef Device *(* | Callback) (Device *) |
Public Types inherited from RequestQueue | |
| enum | ActionOnDuplicate { Block, NewRequest, ReturnImmediately } |
Public Types inherited from UsbDevice | |
| enum | UsbState { Connected = 0, Addressed, HasDescriptors, Configured, HasInterface, HasDriver } |
| Possible states for an USB device. | |
Static Public Member Functions inherited from Device | |
| static void | foreach (Callback callback, Device *root=0) |
| template<class F , class... Args> | |
| static void | foreach (pedigree_std::Callable< F > &callback, Device *root, Args...args) |
| static void | addToRoot (Device *device) |
| static void | searchByVendorId (uint16_t vendorId, void(*callback)(Device *), Device *root=0) |
| static void | searchByVendorIdAndDeviceId (uint16_t vendorId, uint16_t deviceId, void(*callback)(Device *), Device *root=0) |
| static void | searchByClass (uint16_t classCode, void(*callback)(Device *), Device *root=0) |
| static void | searchByClassAndSubclass (uint16_t classCode, uint16_t subclassCode, void(*callback)(Device *), Device *root=0) |
| static void | searchByClassSubclassAndProgInterface (uint16_t classCode, uint16_t subclassCode, uint8_t progInterface, void(*callback)(Device *), Device *root=0) |
Public Attributes inherited from UsbDevice | |
| struct UsbDevice::Setup | PACKED |
| struct UsbDevice::DeviceQualifier | PACKED |
Static Protected Member Functions inherited from Device | |
| static Device & | root () |
Static Protected Member Functions inherited from RequestQueue | |
| static int | trampoline (void *p) |
| static int | doAsync (void *p) |
Protected Attributes inherited from Device | |
| Vector< Address * > | m_Addresses |
| Vector< Device * > | m_Children |
| Device * | m_pParent |
| uintptr_t | m_InterruptNumber |
| String | m_SpecificType |
| PciBus::ConfigSpace | m_ConfigHeader |
| uint8_t | m_ClassCode |
| uint8_t | m_SubclassCode |
| uint16_t | m_VendorId |
| uint16_t | m_DeviceId |
| uint8_t | m_ProgInterface |
| uint32_t | m_PciBusPos |
| uint32_t | m_PciDevicePos |
| uint32_t | m_PciFunctionNum |
Protected Attributes inherited from RequestQueue | |
| Request * | m_pRequestQueue [REQUEST_QUEUE_NUM_PRIORITIES] |
| volatile bool | m_Stop |
| Mutex | m_RequestQueueMutex |
| ConditionVariable | m_RequestQueueCondition |
| ConditionVariable | m_AsyncRequestQueueCondition |
| Thread * | m_pThread |
| bool | m_Halted |
| Mutex | m_HaltAcknowledged |
| RequestQueueOverrunChecker | m_OverrunChecker |
| size_t | m_nMaxAsyncRequests |
| size_t | m_nAsyncRequests |
| size_t | m_nTotalRequests |
| String | m_Name |
Protected Attributes inherited from UsbDevice | |
| uint8_t | m_nAddress |
| The current address of the device. | |
| uint8_t | m_nPort |
| The number of the port on which the device is connected. | |
| UsbSpeed | m_Speed |
| The speed at which the device operates. | |
| UsbState | m_UsbState |
| The current state of the device. | |
| DeviceDescriptor * | m_pDescriptor |
| Device descriptor for this device. | |
| ConfigDescriptor * | m_pConfiguration |
| Configuration in use. | |
| Interface * | m_pInterface |
| Interface in use. | |
| UsbHub * | m_pHub |
| Parent USB hub. | |
| UsbDeviceContainer * | m_pContainer |
| Our current container. | |
Static Protected Attributes inherited from Device | |
| static Device | m_Root |
| static Mutex | m_TreeLock |
Definition at line 33 of file UsbMassStorageDevice.h.
|
inlinevirtual |
Get a usable Device for this particular UsbDevice, if it has a subtree.
Reimplemented from UsbDevice.
Definition at line 55 of file UsbMassStorageDevice.h.
|
virtual |
Implemented by the driver class, initialises driver-specific stuff.
Reimplemented from UsbDevice.
Definition at line 37 of file UsbMassStorageDevice.cc.
References UsbDevice::controlRequest(), ERROR, UsbHumanInterfaceDevice::m_pInEndpoint, UsbDevice::m_pInterface, and UsbDevice::m_UsbState.
|
virtual |
Implements ScsiController.
Definition at line 94 of file UsbMassStorageDevice.cc.
References UsbDevice::clearEndpointHalt(), DEBUG_LOG, Dec, Hex, and UsbHumanInterfaceDevice::m_pInEndpoint.
1.8.11