Add missing function attributes to the RingBuffer driver to reduce the chances of...
[pub/USBasp.git] / LUFA / Drivers / Misc / RingBuffer.h
index 3547c52..64587e6 100644 (file)
                 *  \param[out] Size     Maximum number of bytes that can be stored in the underlying data array.\r
                 */\r
                static inline void RingBuffer_InitBuffer(RingBuffer_t* Buffer, uint8_t* const DataPtr, const uint16_t Size)\r
+                                                        ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);\r
+               static inline void RingBuffer_InitBuffer(RingBuffer_t* Buffer, uint8_t* const DataPtr, const uint16_t Size)\r
                {\r
                        GCC_FORCE_POINTER_ACCESS(Buffer);\r
 \r
                 *\r
                 *  \return Number of bytes currently stored in the buffer.\r
                 */\r
+               static inline uint16_t RingBuffer_GetCount(RingBuffer_t* const Buffer) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1);\r
                static inline uint16_t RingBuffer_GetCount(RingBuffer_t* const Buffer)\r
                {\r
                        uint16_t Count;\r
                 *\r
                 *  \return Number of free bytes in the buffer.\r
                 */\r
+               static inline uint16_t RingBuffer_GetFreeCount(RingBuffer_t* const Buffer) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1);\r
                static inline uint16_t RingBuffer_GetFreeCount(RingBuffer_t* const Buffer)\r
                {\r
                        return (Buffer->Size - RingBuffer_GetCount(Buffer));\r
                 *\r
                 *  \return Boolean \c true if the buffer contains no free space, false otherwise.\r
                 */\r
+               static inline bool RingBuffer_IsEmpty(RingBuffer_t* const Buffer) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1);\r
                static inline bool RingBuffer_IsEmpty(RingBuffer_t* const Buffer)\r
                {\r
                        return (RingBuffer_GetCount(Buffer) == 0);\r
                 *\r
                 *  \return Boolean \c true if the buffer contains no free space, false otherwise.\r
                 */\r
+               static inline bool RingBuffer_IsFull(RingBuffer_t* const Buffer) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1);\r
                static inline bool RingBuffer_IsFull(RingBuffer_t* const Buffer)\r
                {\r
                        return (RingBuffer_GetCount(Buffer) == Buffer->Size);\r
                 *  \param[in,out] Buffer  Pointer to a ring buffer structure to insert into.\r
                 *  \param[in]     Data    Data element to insert into the buffer.\r
                 */\r
-               static inline void RingBuffer_Insert(RingBuffer_t* Buffer,\r
-                                                    const uint8_t Data)\r
+               static inline void RingBuffer_Insert(RingBuffer_t* Buffer, const uint8_t Data) ATTR_NON_NULL_PTR_ARG(1);\r
+               static inline void RingBuffer_Insert(RingBuffer_t* Buffer, const uint8_t Data)\r
                {\r
                        GCC_FORCE_POINTER_ACCESS(Buffer);\r
 \r
                 *\r
                 *  \return Next data element stored in the buffer.\r
                 */\r
+               static inline uint8_t RingBuffer_Remove(RingBuffer_t* Buffer) ATTR_NON_NULL_PTR_ARG(1);\r
                static inline uint8_t RingBuffer_Remove(RingBuffer_t* Buffer)\r
                {\r
                        GCC_FORCE_POINTER_ACCESS(Buffer);\r
                 *\r
                 *  \return Next data element stored in the buffer.\r
                 */\r
+               static inline uint8_t RingBuffer_Peek(RingBuffer_t* const Buffer) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1);\r
                static inline uint8_t RingBuffer_Peek(RingBuffer_t* const Buffer)\r
                {\r
                        return *Buffer->Out;\r