- void CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, char* Data, uint16_t Length);\r
- void CDC_Host_SendByte(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, uint8_t Data);\r
- uint16_t CDC_Host_BytesReceived(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo);\r
- uint8_t CDC_Host_ReceiveByte(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo);\r
+ /** Sends a given byte to the attached USB device, if connected. If a host is not connected when the function is called, the\r
+ * byte is discarded.\r
+ *\r
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class host configuration and state\r
+ * \param[in] Data Byte of data to send to the device\r
+ */\r
+ void CDC_Host_SendByte(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, uint8_t Data) ATTR_NON_NULL_PTR_ARG(1);\r
+\r
+ /** Determines the number of bytes received by the CDC interface from the device, waiting to be read.\r
+ *\r
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class host configuration and state\r
+ *\r
+ * \return Total number of buffered bytes received from the device\r
+ */\r
+ uint16_t CDC_Host_BytesReceived(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
+\r
+ /** Reads a byte of data from the device. If no data is waiting to be read of if a USB device is not connected, the function\r
+ * returns 0. The \ref CDC_Host_BytesReceived() function should be queried before data is recieved to ensure that no data\r
+ * underflow occurs.\r
+ *\r
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class host configuration and state\r
+ *\r
+ * \return Next received byte from the device, or 0 if no data received\r
+ */\r
+ uint8_t CDC_Host_ReceiveByte(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\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
+ * are available in the ControlLineStates.DeviceToHost value inside the CDC host interface structure passed as a parameter, set as\r
+ * a mask of CDC_CONTROL_LINE_IN_* masks.\r
+ *\r
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class host configuration and state\r
+ */\r
+ void EVENT_CDC_Host_ControLineStateChanged(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r