xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkisp_demo/demo/iio/include/rkiio_fifo.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #ifndef __RK_IIO_FIFO_
2 #define __RK_IIO_FIFO_
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #include "rkiio_common.h"
9 #include "format.h"
10 
11 typedef void *RKIIO_FIFO_HANDLE;
12 typedef void *RKIIO_FIFO_DATA;
13 typedef void *RKIIO_FIFO_DEV;
14 
15 #define RKIIO_TIMESTAMP_MONOTONIC "monotonic"
16 #define RKIIO_TIMESTAMP_REALTIME "realtime"
17 
18 typedef struct xyz_data_s {
19     double x;
20     double y;
21     double z;
22 } xyz_data_t;
23 
24 typedef struct rkiio_data_0_s {
25     RK_U64 id;
26     xyz_data_t anglvel;
27     xyz_data_t accel;
28     RK_S32 temp;
29     RK_U64 timestamp;
30 } rkiio_data_0_t;
31 
32 RKIIO_FIFO_HANDLE rkiio_fifo_handle_create(RKIIO_FIFO_DEV dev, RK_S32 last_index, struct rkiio_format_info *format_info, RK_U8 info_num, RK_U32 buf_max_num, double max_sampling_rate);
33 RK_S32 rkiio_fifo_list_len_get(RKIIO_FIFO_HANDLE fifo_handle, RK_U32 *len);
34 RK_S32 rkiio_fifo_handle_destroy(RKIIO_FIFO_HANDLE fifo_handle);
35 RK_S32 rkiio_fifo_handle_last_id_get(RKIIO_FIFO_HANDLE fifo_handle, RK_U64 *id);
36 RK_S32 rkiio_fifo_refill_once(RKIIO_FIFO_HANDLE fifo_handle);
37 RK_S32 rkiio_fifo_data_read_all(RKIIO_FIFO_HANDLE fifo_handle, RKIIO_FIFO_DATA fifo_data, RK_U64 *frame_id, RK_U64 *data_num);
38 RK_S32 rkiio_fifo_data_read_num(RKIIO_FIFO_HANDLE fifo_handle, RKIIO_FIFO_DATA fifo_data, RK_U64 *frame_id, RK_U64 data_num);
39 RK_S32 rkiio_fifo_data_release(RKIIO_FIFO_DATA buf);
40 
41 #ifdef __cplusplus
42 }
43 #endif
44 
45 #endif // #ifndef __RK_IIO_FIFO_