ADuCM302x Device Drivers API Reference Manual  Release 3.1.2.0
adi_data_transfer.h
1 
45 #ifndef ADI_DATA_TRANSFER_H
46 #define ADI_DATA_TRANSFER_H
47 
48 /*============= I N C L U D E S =============*/
49 
50 #include <stdint.h> /* defines types such as uint32_t*/
51 #include <rtos_map/adi_rtos_map.h> /* needed for SEM_VAR_DECLR declaration */
52 
58 #ifdef __cplusplus
59 extern "C" {
60 #endif /* __cplusplus */
61 
62 /*============== D E F I N E S ===============*/
63 
64 #define ADI_DT_BUFNUM (2u)
71 struct _ADI_DT_BUFF_INFO;
72 
77 typedef struct _ADI_DT_BUFF_INFO
78 {
79  void * pStartAddress;
80  uint32_t nCount;
81  uint32_t nIndex;
82  bool bInUse;
83  bool bDMA;
84  struct _ADI_DT_BUFF_INFO * pNextBuffer;
85 } ADI_DT_BUFF_INFO;
86 
91 typedef enum _ADI_DT_MODE
92 {
93  ADI_DT_MODE_NONE,
94  ADI_DT_MODE_BLOCKING,
95  ADI_DT_MODE_NONBLOCKING
96 } ADI_DT_MODE;
97 
98 typedef void * ADI_DEVICE_HANDLE;
104 typedef struct
105 {
106  ADI_DT_BUFF_INFO BufInfo[ADI_DT_BUFNUM];
107  ADI_DT_BUFF_INFO * pFreeBuffer;
108  ADI_DT_BUFF_INFO * pFillBuffer;
110  ADI_DT_BUFF_INFO * pActiveBuffer;
111  ADI_DT_MODE eDataTranferMode;
113  SEM_VAR_DECLR
114 } ADI_DT_CHANNEL;
115 
116 
117 /*============= P U B L I C F U N C T I O N S =============*/
118 
119 
120 #ifdef __cplusplus
121 }
122 #endif /* __cplusplus */
123 
126 #endif /* ADI_DATA_TRANSFER_H */
127