Added CDC_Device_Flush() command to the CDC Device mode class driver.
[pub/lufa.git] / LUFA / Drivers / USB / Class / Host / MassStorage.h
index 0f4bdd1..18b2cf4 100644 (file)
                #endif\r
 \r
        /* Public Interface - May be used in end-application: */\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
+                        */\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
+                               } 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 Active; /**< 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
+                                                     *   Configured state\r
+                                                     */\r
+                                       uint8_t InterfaceNumber; /**< Interface index of the HID 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
+                               } State; /**< State data for the USB class interface within the device. All elements in this section\r
+                                                 *   <b>may</b> be set to initial values, but may also be ignored to default to sane values when\r
+                                                 *   the interface is enumerated.\r
+                                                 */\r
+                       } USB_ClassInfo_MS_Host_t;\r
+\r
+               /* Enums: */\r
+                       enum\r
+                       {\r
+                               MS_ENUMERROR_NoError                    = 0, /**< Configuration Descriptor was processed successfully */\r
+                               MS_ENUMERROR_InvalidConfigDescriptor    = 1, /**< The device returned an invalid Configuration Descriptor */\r
+                               MS_ENUMERROR_NoMSInterfaceFound        = 2, /**< A compatible Mass Storage interface was not found in the device's Configuration Descriptor */\r
+                               MS_ENUMERROR_EndpointsNotFound          = 3, /**< Compatible Mass Storage endpoints were not found in the device's interfaces */\r
+                       } MSHost_EnumerationFailure_ErrorCodes_t;\r
+       \r
                /* Function Prototypes: */\r
+                       void MS_Host_USBTask(USB_ClassInfo_MS_Host_t* MSInterfaceInfo);\r
+                       uint8_t MS_Host_ConfigurePipes(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint16_t ConfigDescriptorLength,\r
+                                                      uint8_t* DeviceConfigDescriptor);\r
                \r
+       /* Private Interface - For use in library only: */\r
+       #if !defined(__DOXYGEN__)\r
+               /* Macros: */\r
+                       #define MASS_STORE_CLASS               0x08\r
+                       #define MASS_STORE_SUBCLASS            0x06\r
+                       #define MASS_STORE_PROTOCOL            0x50\r
+\r
+                       #define MS_FOUND_DATAPIPE_IN           (1 << 0)\r
+                       #define MS_FOUND_DATAPIPE_OUT          (1 << 1)\r
+                       \r
+               /* Function Prototypes: */\r
+                       #if defined(INCLUDE_FROM_MS_CLASS_HOST_C)               \r
+                               static uint8_t DComp_NextMassStorageInterface(void* CurrentDescriptor);\r
+                               static uint8_t DComp_NextInterfaceBulkDataEndpoint(void* CurrentDescriptor);\r
+                       #endif\r
+       #endif\r
+       \r
        /* Disable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r
                        }\r