iLLD_TC27xC  1.0
Ifx_CircularBuffer.h
Go to the documentation of this file.
1 /**
2  * \file Ifx_CircularBuffer.h
3  * \brief Circular buffer functions.
4  *
5  * \version iLLD_0_1_0_10
6  * \copyright Copyright (c) 2013 Infineon Technologies AG. All rights reserved.
7  *
8  *
9  * IMPORTANT NOTICE
10  *
11  *
12  * Infineon Technologies AG (Infineon) is supplying this file for use
13  * exclusively with Infineon's microcontroller products. This file can be freely
14  * distributed within development tools that are supporting such microcontroller
15  * products.
16  *
17  * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
18  * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
19  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
20  * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
21  * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
22  *
23  * \defgroup IfxLld_lib_datahandling_circularbuffer Circular buffer
24  * This module implements circular buffer functions.
25  * \ingroup IfxLld_lib_datahandling
26  *
27  */
28 
29 #ifndef IFX_CIRCULARBUFFER_H
30 #define IFX_CIRCULARBUFFER_H 1
31 
32 //---------------------------------------------------------------------------
34 //---------------------------------------------------------------------------
35 
36 #ifndef IFX_CFG_CIRCULARBUFFER_C
37 #define IFX_CFG_CIRCULARBUFFER_C (1)
38 #endif
39 
40 /** \addtogroup IfxLld_lib_datahandling_circularbuffer
41  * \{
42  */
43 /** \brief Return the circular buffer 16 bit value, and post-increment the circular buffer pointer
44  *
45  * \param buffer Specifies circular buffer.
46  *
47  * \return Return the next circular buffer value.
48  */
50 
51 /** \brief Return the circular buffer 32 bit value, and post-increment the circular buffer pointer
52  *
53  * \param buffer Specifies circular buffer.
54  *
55  * \return Return the next circular buffer value.
56  */
58 
59 /** \brief Copy count bytes from the circular buffer to the data array
60  *
61  * \param buffer Specifies circular buffer.
62  * \param data Specifies destination pointer.
63  * \param count Specifies number of bytes to be copied. count MUST be >= 1.
64  *
65  * \return Returns the updated data pointer data = ((uint8*)data) + count
66  */
67 void *Ifx_CircularBuffer_read8(Ifx_CircularBuffer *buffer, void *data, Ifx_SizeT count);
68 
69 /** \brief Copy count 32 bit words from the circular buffer to the data array
70  *
71  * \param buffer Specifies circular buffer.
72  * \param data Specifies destination pointer.
73  * \param count Specifies number of 32 bit words to be copied. count MUST be >= 1.
74  *
75  * \return Returns the updated data pointer data = ((uint32*)data) + count
76  */
77 void *Ifx_CircularBuffer_read32(Ifx_CircularBuffer *buffer, void *data, Ifx_SizeT count);
78 
79 /** \brief Copy count bytes from the data array to the circular buffer
80  *
81  * \param buffer Specifies circular buffer.
82  * \param data Specifies source pointer.
83  * \param count Specifies number of bytes to be copied. count MUST be >= 1.
84  *
85  * \return Returns the updated data pointer data = ((uint8*)data) + count
86  */
87 const void *Ifx_CircularBuffer_write8(Ifx_CircularBuffer *buffer, const void *data, Ifx_SizeT count);
88 
89 /** \brief Copy count 32 bit words from the data array to the circular buffer
90  *
91  * \param buffer Specifies circular buffer.
92  * \param data Specifies source pointer.
93  * \param count Specifies number of 32 bit words to be copied. count MUST be >= 1.
94  *
95  * \return Returns the updated data pointer data = ((uint32*)data) + count
96  */
97 const void *Ifx_CircularBuffer_write32(Ifx_CircularBuffer *buffer, const void *data, Ifx_SizeT count);
98 
99 /** \} */
100 //---------------------------------------------------------------------------
101 #endif