Oops: Really disable building of Projects/Host/ClassDriver directory in the Projects...
[pub/lufa.git] / LUFA / Drivers / USB / Class / Host / MassStorage.h
index a8a957b..7ee3b88 100644 (file)
                         */\r
                        uint8_t MS_Host_ResetMSInterface(USB_ClassInfo_MS_Host_t* MSInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
 \r
+                       /** Sends a GET MAX LUN control request to the attached device, retrieving the index of the highest LUN (Logical\r
+                        *  UNit, a logical drive) in the device. This value can then be used in the other functions of the Mass Storage\r
+                        *  Host mode Class driver to address a specific LUN within the device.\r
+                        *\r
+                        *  \param[in,out] MSInterfaceInfo  Pointer to a structure containing a MS Class host configuration and state\r
+                        *  \param[out] MaxLUNIndex  Pointer to a location where the highest LUN index value should be stored\r
+                        *\r
+                        *  \return A value from the \ref USB_Host_SendControlErrorCodes_t enum\r
+                        */\r
                        uint8_t MS_Host_GetMaxLUN(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t* MaxLUNIndex) ATTR_NON_NULL_PTR_ARG(1, 2);\r
 \r
                        uint8_t MS_Host_GetInquiryData(USB_ClassInfo_MS_Host_t* MSInterfaceInfo,\r
                        uint8_t MS_Host_ReadDeviceCapacity(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t LUNIndex,\r
                                                           SCSI_Capacity_t* DeviceCapacity) ATTR_NON_NULL_PTR_ARG(1, 3);\r
                \r
+                       uint8_t MS_Host_RequestSense(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t LUNIndex,\r
+                                                    SCSI_Request_Sense_Response_t* SenseData) ATTR_NON_NULL_PTR_ARG(1, 3);\r
+               \r
+                       uint8_t MS_Host_PreventAllowMediumRemoval(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t LUNIndex,\r
+                                                                 bool PreventRemoval) ATTR_NON_NULL_PTR_ARG(1);\r
+                       \r
+                       uint8_t MS_Host_ReadDeviceBlocks(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t LUNIndex, uint32_t BlockAddr,\r
+                                                        uint8_t Blocks, uint16_t BlockSize, void* BlockBuffer) ATTR_NON_NULL_PTR_ARG(1, 6);\r
+               \r
+                       uint8_t MS_Host_WriteDeviceBlocks(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t LUNIndex, uint32_t BlockAddr,\r
+                                                         uint8_t Blocks, uint16_t BlockSize, void* BlockBuffer) ATTR_NON_NULL_PTR_ARG(1, 6);\r
+\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
                                static uint8_t DComp_NextMassStorageInterface(void* CurrentDescriptor);\r
                                static uint8_t DComp_NextInterfaceBulkDataEndpoint(void* CurrentDescriptor);\r
                                \r
-                               static uint8_t MassStore_SendCommand(USB_ClassInfo_MS_Host_t* MSInterfaceInfo,\r
-                                                                    MS_CommandBlockWrapper_t* SCSICommandBlock);\r
-                               static uint8_t MassStore_WaitForDataReceived(USB_ClassInfo_MS_Host_t* MSInterfaceInfo);\r
-                               static uint8_t MassStore_SendReceiveData(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, \r
-                                                         MS_CommandBlockWrapper_t* SCSICommandBlock, void* BufferPtr);\r
-                               static uint8_t MassStore_GetReturnedStatus(USB_ClassInfo_MS_Host_t* MSInterfaceInfo,\r
-                                                                          MS_CommandStatusWrapper_t* SCSICommandStatus);\r
+                               static uint8_t MS_Host_SendCommand(USB_ClassInfo_MS_Host_t* MSInterfaceInfo,\r
+                                                                  MS_CommandBlockWrapper_t* SCSICommandBlock);\r
+                               static uint8_t MS_Host_WaitForDataReceived(USB_ClassInfo_MS_Host_t* MSInterfaceInfo);\r
+                               static uint8_t MS_Host_SendReceiveData(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, \r
+                                                       MS_CommandBlockWrapper_t* SCSICommandBlock, void* BufferPtr);\r
+                               static uint8_t MS_Host_GetReturnedStatus(USB_ClassInfo_MS_Host_t* MSInterfaceInfo,\r
+                                                                        MS_CommandStatusWrapper_t* SCSICommandStatus);\r
                        #endif\r
        #endif\r
        \r