1 /*
2  * Copyright (C) 2015-2021 Alibaba Group Holding Limited
3  */
4 
5 #ifndef __BT_VENDOR_DRV_H_
6 #define __BT_VENDOR_DRV_H_
7 
8 #include <stdio.h>
9 #include <stdint.h>
10 
11 typedef void (*rx_ind_cb_t)(void);
12 
13 /**
14 * 初始化BT驱动、加载patch、调节Coex,其他厂家IC初始化的操作
15 *
16 * @return  操作状态,0代表成功,其他值表示失败
17 */
18 int bt_vendor_drv_bring_up(void);
19 
20 /**
21 * 设置RX事件回调,BT Driver收到EVENT/ACL数据后,通过此接口通知BT Stack进行读取操作
22 * @param[in]  ready_to_rx  回调函数
23 * @return     操作状态,0代表成功,其他值表示失败
24 */
25 int bt_vendor_drv_set_rx_ind(rx_ind_cb_t ind);
26 
27 /**
28 * 从BT Controller读取EVENT/ACL数据
29 * @param[out]  data 数据保存的起始内存地址
30 * @param[in]   len  期望读取的数据长度
31 * @return      实际读取的数据长度
32 */
33 size_t bt_vendor_drv_rx(uint8_t *data, size_t len);
34 
35 /**
36 * BT Stack通过此接口往Controller发送数据
37 * @param[in]  data    数据的起始内存地址
38 * @param[in]  len     期望发送的数据长度
39 * @param[in]  reserve NULL
40 * @return             实际发送的数据长度
41 */
42 size_t bt_vendor_drv_tx(uint8_t *data, size_t len, void *reserve);
43 
44 #endif