comparison src/condat/com/include/cl_ribu.h @ 4:6e457872f745

src/condat: hybrid import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 08:01:56 +0000
parents
children
comparison
equal deleted inserted replaced
3:b4c81ea2d291 4:6e457872f745
1 /*
2 +-----------------------------------------------------------------------------
3 | Project : COMLIB
4 | Modul : cl_ribu
5 +-----------------------------------------------------------------------------
6 | Copyright 2002 Texas Instruments Berlin, AG
7 | All rights reserved.
8 |
9 | This file is confidential and a trade secret of Texas
10 | Instruments Berlin, AG
11 | The receipt of or possession of this file does not convey
12 | any rights to reproduce or disclose its contents or to
13 | manufacture, use, or sell anything it may describe, in
14 | whole, or in part, without the specific written consent of
15 | Texas Instruments Berlin, AG.
16 +-----------------------------------------------------------------------------
17 | Purpose : Definitions of global types used by common library functions
18 | and the prototypes of those functions.
19 +-----------------------------------------------------------------------------
20 */
21 /*
22 * Version 1.0
23 */
24
25 /**********************************************************************************/
26
27 #ifndef CL_RIBU_H
28 #define CL_RIBU_H
29
30 /**********************************************************************************/
31
32 typedef struct
33 {
34 U8 ri; /* ring buffer read index */
35 U8 wi; /* ring buffer write index */
36 U8 depth; /* ring buffer depth */
37 U8 filled; /* ring buffer filled flag */
38 } T_RIBU;
39
40 typedef struct
41 {
42 U8 type;
43 U8 status;
44 U8 len; /* buffer length */
45 U8 *buf; /* buffer start address */
46 } T_FD; /* frame descriptor */
47
48 typedef struct
49 {
50 T_RIBU idx;
51 T_FD **pFDv; /* frame descriptor vector */
52 } T_RIBU_FD;
53
54 /**********************************************************************************/
55
56 EXTERN void cl_ribu_create(T_RIBU_FD **ribu, const U8 buflen, const U8 depth);
57 EXTERN void cl_ribu_release(T_RIBU_FD **ribu);
58
59 EXTERN void cl_ribu_put(const T_FD fd, T_RIBU_FD *ribu);
60 EXTERN T_FD *cl_ribu_get(T_RIBU_FD *ribu);
61 EXTERN T_FD *cl_ribu_get_new_frame_desc(T_RIBU_FD *ribu);
62
63 EXTERN void cl_ribu_init(T_RIBU *ribu, const U8 depth);
64 EXTERN U8 cl_ribu_read_index(T_RIBU *ribu);
65 EXTERN U8 cl_ribu_write_index(T_RIBU *ribu);
66 EXTERN BOOL cl_ribu_data_avail(const T_RIBU_FD *ribu);
67
68 EXTERN void cl_set_frame_desc(T_FRAME_DESC *frame_desc, U8 *A0, U16 L0, U8 *A1, U16 L1);
69 EXTERN void cl_set_frame_desc_0(T_FRAME_DESC *frame_desc, U8 *A0, U16 L0);
70
71 #endif /* CL_RIBU_H */