Add blocking versions of the CDC Class driver streams, for applications requiring...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / CDC.h
index 0ee24be..9b5fb0c 100644 (file)
                         */\r
                        void CDC_Host_CreateStream(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, FILE* Stream);\r
 \r
                         */\r
                        void CDC_Host_CreateStream(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, FILE* Stream);\r
 \r
+                       /** Identical to CDC_Host_CreateStream(), except that reads are blocking until the calling stream function terminates\r
+                        *  the transfer. While blocking, the USB and CDC service tasks are called repeatedly to maintain USB communications.\r
+                        *\r
+                        *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state\r
+                        *  \param[in,out] Stream  Pointer to a FILE structure where the created stream should be placed\r
+                        */\r
+                       void CDC_Host_CreateBlockingStream(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, FILE* Stream);\r
+\r
                        /** CDC class driver event for a control line state change on a CDC host interface. This event fires each time the device notifies\r
                         *  the host of a control line state change (containing the virtual serial control line states, such as DCD) and may be hooked in the\r
                         *  user program by declaring a handler function with the same name and parameters listed here. The new control line states\r
                        /** CDC class driver event for a control line state change on a CDC host interface. This event fires each time the device notifies\r
                         *  the host of a control line state change (containing the virtual serial control line states, such as DCD) and may be hooked in the\r
                         *  user program by declaring a handler function with the same name and parameters listed here. The new control line states\r
                        #if defined(INCLUDE_FROM_CDC_CLASS_HOST_C)\r
                                static int CDC_Host_putchar(char c, FILE* Stream);\r
                                static int CDC_Host_getchar(FILE* Stream);\r
                        #if defined(INCLUDE_FROM_CDC_CLASS_HOST_C)\r
                                static int CDC_Host_putchar(char c, FILE* Stream);\r
                                static int CDC_Host_getchar(FILE* Stream);\r
+                               static int CDC_Host_getchar_Blocking(FILE* Stream);\r
 \r
                                void CDC_Host_Event_Stub(void);\r
                                void EVENT_CDC_Host_ControLineStateChanged(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)\r
 \r
                                void CDC_Host_Event_Stub(void);\r
                                void EVENT_CDC_Host_ControLineStateChanged(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)\r