ADuCM4x50 Device Drivers API Reference Manual  Release 4.0.0.0
adi_data_transfer.h
1 
14 #ifndef ADI_DATA_TRANSFER_H
15 #define ADI_DATA_TRANSFER_H
16 
17 /*============= I N C L U D E S =============*/
18 
19 #include <stdint.h> /* defines types such as uint32_t*/
20 #include <rtos_map/adi_rtos_map.h> /* needed for SEM_VAR_DECLR declaration */
21 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif /* __cplusplus */
30 
31 /*============== D E F I N E S ===============*/
32 
33 #define ADI_DT_BUFNUM (2u)
40 struct _ADI_DT_BUFF_INFO;
41 
46 typedef struct _ADI_DT_BUFF_INFO
47 {
48  void * pStartAddress;
49  uint32_t nCount;
50  uint32_t nIndex;
51  bool bInUse;
52  bool bDMA;
53  struct _ADI_DT_BUFF_INFO * pNextBuffer;
54 } ADI_DT_BUFF_INFO;
55 
60 typedef enum _ADI_DT_MODE
61 {
62  ADI_DT_MODE_NONE,
63  ADI_DT_MODE_BLOCKING,
64  ADI_DT_MODE_NONBLOCKING
65 } ADI_DT_MODE;
66 
67 typedef void * ADI_DEVICE_HANDLE;
73 typedef struct
74 {
75  ADI_DT_BUFF_INFO BufInfo[ADI_DT_BUFNUM];
76  ADI_DT_BUFF_INFO * pFreeBuffer;
77  ADI_DT_BUFF_INFO * pFillBuffer;
79  ADI_DT_BUFF_INFO * pActiveBuffer;
80  ADI_DT_MODE eDataTranferMode;
82  SEM_VAR_DECLR
83 } ADI_DT_CHANNEL;
84 
85 
86 /*============= P U B L I C F U N C T I O N S =============*/
87 
88 
89 #ifdef __cplusplus
90 }
91 #endif /* __cplusplus */
92 
95 #endif /* ADI_DATA_TRANSFER_H */
96