Remove dependancies from the LowLevel demos to the ClassDriver demos, since the use...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / MassStorage.h
index a65a352..4cd37bd 100644 (file)
        \r
                /* Type Defines: */\r
                        /** Class state structure. An instance of this structure should be made within the user application,\r
-                        *  and passed to each of the HID class driver functions as the HIDInterfaceInfo parameter. This\r
-                        *  stores each HID interface's configuration and state information.\r
+                        *  and passed to each of the Mass Storage class driver functions as the MSInterfaceInfo parameter. This\r
+                        *  stores each Mass Storage interface's configuration and state information.\r
                         */\r
                        typedef struct\r
                        {\r
                                const struct\r
                                {\r
-                                       uint8_t  DataINPipeNumber; /**< Pipe number of the MS interface's IN data pipe */\r
-                                       uint8_t  DataOUTPipeNumber; /**< Pipe number of the MS interface's OUT data pipe */\r
+                                       uint8_t  DataINPipeNumber; /**< Pipe number of the Mass Storage interface's IN data pipe */\r
+                                       bool     DataINPipeDoubleBank; /** Indicates if the Mass Storage interface's IN data pipe should use double banking */\r
+\r
+                                       uint8_t  DataOUTPipeNumber; /**< Pipe number of the Mass Storage interface's OUT data pipe */\r
+                                       bool     DataOUTPipeDoubleBank; /** Indicates if the Mass Storage interface's OUT data pipe should use double banking */\r
                                } Config; /**< Config data for the USB class interface within the device. All elements in this section\r
                                           *   <b>must</b> be set or the interface will fail to enumerate and operate correctly.\r
                                           */\r
                                struct\r
                                {\r
                                        bool IsActive; /**< Indicates if the current interface instance is connected to an attached device, valid\r
-                                                       *   after \ref HID_Host_ConfigurePipes() is called and the Host state machine is in the\r
+                                                       *   after \ref MS_Host_ConfigurePipes() is called and the Host state machine is in the\r
                                                        *   Configured state\r
                                                        */\r
-                                       uint8_t InterfaceNumber; /**< Interface index of the HID interface within the attached device */\r
+                                       uint8_t InterfaceNumber; /**< Interface index of the Mass Storage interface within the attached device */\r
 \r
-                                       uint16_t DataINPipeSize; /**< Size in bytes of the MS interface's IN data pipe */\r
-                                       uint16_t DataOUTPipeSize;  /**< Size in bytes of the MS interface's OUT data pipe */\r
+                                       uint16_t DataINPipeSize; /**< Size in bytes of the Mass Storage interface's IN data pipe */\r
+                                       uint16_t DataOUTPipeSize;  /**< Size in bytes of the Mass Storage interface's OUT data pipe */\r
                                        \r
                                        uint32_t TransactionTag; /**< Current transaction tag for data synchronising of packets */\r
                                } State; /**< State data for the USB class interface within the device. All elements in this section\r
                         */\r
                        typedef struct\r
                        {\r
-                               uint8_t       ReponseCode;\r
+                               uint8_t       ResponseCode;\r
 \r
                                uint8_t       SegmentNumber;\r
                                \r
                         *  \return A value from the \ref MSHost_EnumerationFailure_ErrorCodes_t enum\r
                         */\r
                        uint8_t MS_Host_ConfigurePipes(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo, uint16_t ConfigDescriptorSize,\r
-                                                      uint8_t* DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1, 3);\r
+                                                      void* DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1, 3);\r
 \r
                        /** Sends a MASS STORAGE RESET control request to the attached device, resetting the Mass Storage Interface\r
                         *  and readying it for the next Mass Storage command.\r
                        \r
                /* Function Prototypes: */\r
                        #if defined(INCLUDE_FROM_MS_CLASS_HOST_C)               \r
-                               static uint8_t DComp_NextMSInterface(void* CurrentDescriptor);\r
-                               static uint8_t DComp_NextMSInterfaceEndpoint(void* CurrentDescriptor);\r
+                               static uint8_t DComp_NextMSInterface(void* const CurrentDescriptor);\r
+                               static uint8_t DComp_NextMSInterfaceEndpoint(void* const CurrentDescriptor);\r
                                \r
-                               static uint8_t MS_Host_SendCommand(USB_ClassInfo_MS_Host_t* MSInterfaceInfo,\r
-                                                                  MS_CommandBlockWrapper_t* SCSICommandBlock,\r
+                               static uint8_t MS_Host_SendCommand(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo,\r
+                                                                  MS_CommandBlockWrapper_t* const SCSICommandBlock,\r
                                                                   void* BufferPtr);\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
+                               static uint8_t MS_Host_WaitForDataReceived(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo);\r
+                               static uint8_t MS_Host_SendReceiveData(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo, \r
+                                                       MS_CommandBlockWrapper_t* const SCSICommandBlock, void* BufferPtr);\r
+                               static uint8_t MS_Host_GetReturnedStatus(USB_ClassInfo_MS_Host_t* const MSInterfaceInfo,\r
+                                                                        MS_CommandStatusWrapper_t* const SCSICommandStatus);\r
                        #endif\r
        #endif\r
        \r