Changed the RFCOMM-specific ItemProtocolChannel_t type to a more generic ItemProtocol...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / CDC.h
index 278996f..3bd9c9d 100644 (file)
                         *  \ref CDC_Device_Flush() function is called to flush the pending data to the host. This allows for multiple bytes to be 
                         *  packed into a single endpoint packet, increasing data throughput.
                         *
-                        *  \note This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
-                        *        the call will fail.
+                        *  \pre This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
+                        *       the call will fail.
                         *
                         *  \param[in,out]   CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state
                         *  \param[in]       Data              Pointer to the string to send to the host
                         *  \ref CDC_Device_Flush() function is called to flush the pending data to the host. This allows for multiple bytes to be 
                         *  packed into a single endpoint packet, increasing data throughput.
                         *
-                        *  \note This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
-                        *        the call will fail.
+                        *  \pre This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
+                        *       the call will fail.
                         *
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state
                         *  \param[in]     Data              Byte of data to send to the host
                        
                        /** Determines the number of bytes received by the CDC interface from the host, waiting to be read.
                         *
-                        *  \note This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
-                        *        the call will fail.
+                        *  \pre This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
+                        *       the call will fail.
                         *
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state
                         *
                         *  returns 0. The \ref CDC_Device_BytesReceived() function should be queried before data is received to ensure that no data
                         *  underflow occurs.
                         *
-                        *  \note This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
-                        *        the call will fail.
+                        *  \pre This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
+                        *       the call will fail.
                         *
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state
                         *
                        
                        /** Flushes any data waiting to be sent, ensuring that the send buffer is cleared.
                         *
-                        *  \note This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
-                        *        the call will fail.
+                        *  \pre This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
+                        *       the call will fail.
                         *
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state
                         *
                         *  until they are cleared via a second notification. This should be called each time the CDC class driver's 
                         *  ControlLineStates.DeviceToHost value is updated to push the new states to the USB host.
                         *
-                        *  \note This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
-                        *        the call will fail.
+                        *  \pre This function must only be called when the Device state machine is in the DEVICE_STATE_Configured state or
+                        *       the call will fail.
                         *
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state
                         */
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state
                         *  \param[in,out] Stream            Pointer to a FILE structure where the created stream should be placed
                         */
-                       void CDC_Device_CreateStream(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, FILE* Stream);
+                       void CDC_Device_CreateStream(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, FILE* Stream)
+                                                    ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
 
                        /** Identical to CDC_Device_CreateStream(), except that reads are blocking until the calling stream function terminates
                         *  the transfer. While blocking, the USB and CDC service tasks are called repeatedly to maintain USB communications.
                         *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state
                         *  \param[in,out] Stream            Pointer to a FILE structure where the created stream should be placed
                         */
-                       void CDC_Device_CreateBlockingStream(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, FILE* Stream);
+                       void CDC_Device_CreateBlockingStream(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, FILE* Stream)
+                                                            ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
 
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)
                /* Function Prototypes: */
                        #if defined(__INCLUDE_FROM_CDC_CLASS_DEVICE_C)
-                               static int CDC_Device_putchar(char c, FILE* Stream);
-                               static int CDC_Device_getchar(FILE* Stream);
-                               static int CDC_Device_getchar_Blocking(FILE* Stream);
+                               static int CDC_Device_putchar(char c, FILE* Stream) ATTR_NON_NULL_PTR_ARG(2);
+                               static int CDC_Device_getchar(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
+                               static int CDC_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
                                
                                void CDC_Device_Event_Stub(void);
                                void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)