152 lines
7.6 KiB
C
152 lines
7.6 KiB
C
/***************************************************************************
|
|
*
|
|
* Copyright 2015-2019 BES.
|
|
* All rights reserved. All unpublished rights reserved.
|
|
*
|
|
* No part of this work may be used or reproduced in any form or by any
|
|
* means, or stored in a database or retrieval system, without prior written
|
|
* permission of BES.
|
|
*
|
|
* Use of this work is governed by a license granted by BES.
|
|
* This work contains confidential and proprietary information of
|
|
* BES. which is protected by copyright, trade secret,
|
|
* trademark and other intellectual property rights.
|
|
*
|
|
****************************************************************************/
|
|
#ifndef __BTLIB_H__
|
|
#define __BTLIB_H__
|
|
|
|
#include "bt_common.h"
|
|
#include "hci.h"
|
|
#include "co_timer.h"
|
|
#include "btm.h"
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
int8 btlib_send_hci_cmd(uint16 opcode, uint8 *param_data_ptr, uint8 param_len);
|
|
int8 btlib_send_acl_data( uint16 conn_handle, uint8 *data_ptr, uint16 data_len, uint8 *priv);
|
|
int8 btlib_hcicmd_acl_connect(struct bdaddr_t *bdaddr,
|
|
uint16 pkt_type,
|
|
uint8 page_scan_repetition_mode,
|
|
uint16 clk_off,
|
|
uint8 allow_role_switch);
|
|
int8 btlib_hcicmd_addsyc_conn(struct btm_conn_item_t *conn);
|
|
int8 btlib_hcicmd_addsco_conn(struct btm_conn_item_t *conn, uint16 pkt_type);
|
|
int8 btlib_hcicmd_write_scan_enable(uint8 scan_enable);
|
|
int8 btlib_hcicmd_write_current_iac_lap(uint8 num);
|
|
int8 btlib_hcicmd_reject_conn_req(struct bdaddr_t *bdaddr, uint8 reason);
|
|
int8 btlib_hcicmd_accep_conn_req(struct bdaddr_t *bdaddr, uint8 role);
|
|
int8 btlib_hcicmd_switch_role(struct bdaddr_t *bdaddr, uint8 role);
|
|
int8 btlib_hcicmd_write_page_timeout(uint16_t timeout);
|
|
int8 btlib_hcicmd_write_superv_timeout(uint16 connhandle, uint16 superv_timeout);
|
|
int8 btlib_hcicmd_create_connection_cancel(struct bdaddr_t *bdaddr);
|
|
int8 btlib_hcicmd_set_extended_inquiry_response(uint8 fec, uint8 *buff, uint32 len);
|
|
int8 btlib_hcicmd_start_tws_exchange(uint16_t tws_slave_conn_handle, uint16_t mobile_conn_handle);
|
|
int8 btlib_hcicmd_enable_lmp_filter(uint16_t conhdl, uint8_t enable);
|
|
int8 btlib_hcicmd_enable_fastack(uint16_t conhdl, uint8_t direction, uint8_t enable);
|
|
int8 btlib_hcicmd_suspend_ibrt(void);
|
|
int8 btlib_hcicmd_stop_ibrt(uint8_t enable,uint8_t reason);
|
|
int8 btlib_hcicmd_ibrt_mode_init(uint8_t enable);
|
|
int8 btlib_hcicmd_ibrt_role_switch(uint8_t switch_op);
|
|
int8 btlib_hcicmd_start_ibrt(uint16 slaveConnHandle, uint16 mobileConnHandle);
|
|
int8 btlib_hcicmd_resume_ibrt(uint8_t enable);
|
|
int8 btlib_hcicmd_set_tws_pool_interval(uint16_t conn_handle, uint16_t poll_interval);
|
|
int8 btlib_hcicmd_set_normal_sync_pos(uint8_t flag, uint8_t linkid, uint8_t normalSyncPos);
|
|
int8 btlib_hcicmd_set_connection_qos_info(void *remDev, void *qosInfo);
|
|
int8 btlib_hcicmd_set_sniffer_env(uint8 sniffer_active, uint8 sniffer_role, struct bdaddr_t *monitor_bdaddr, struct bdaddr_t *sniffer_bdaddr);
|
|
int8 btlib_hcicmd_get_slave_mobile_rssi(uint16_t conn_handle);
|
|
int8 btlib_hcicmd_set_link_lbrt_enable(uint16 conn_handle, uint8 enable);
|
|
int8 btlib_hcicmd_qos_setup(uint16 conn_handle);
|
|
int8 btlib_hcicmd_ble_write_random_addr(struct bdaddr_t *bdaddr);
|
|
int8 btlib_hcicmd_ble_write_adv_param(struct hci_write_adv_param *para);
|
|
int8 btlib_hcicmd_ble_write_adv_data(U8 len, U8 *data);
|
|
int8 btlib_hcicmd_ble_write_scan_rsp_data(U8 len, U8 *data);
|
|
int8 btlib_hcicmd_ble_write_adv_en(uint8 en);
|
|
int8 btlib_hcicmd_ble_write_scan_param(struct hci_write_ble_scan_param *para);
|
|
int8 btlib_hcicmd_ble_write_scan_en(uint8 scan_en, uint8 filter_duplicate);
|
|
int8 btlib_hcicmd_ble_clear_wl(void);
|
|
int8 btlib_hcicmd_ble_add_dev_to_wl(uint8 addr_type, struct bdaddr_t *bdaddr);
|
|
int8 btlib_hcicmd_tws_bdaddr_exchange(uint16 conn_handle);
|
|
int8 btlib_hcicmd_accept_sync_conn_req(struct bdaddr_t *bdaddr, uint32 tx_bandwidth, uint32 rx_bandwidth, uint16 max_latency, uint16 voice_setting, uint8 retx_effort, uint16 pkt_type);
|
|
|
|
int8 btlib_hcicmd_pincode_reply(struct bdaddr_t *bdaddr, uint8 *pin, int8 pinlen);
|
|
|
|
int8 btlib_hcicmd_pincode_neg_reply(struct bdaddr_t *bdaddr);
|
|
int8 btlib_hcicmd_linkkey_reply(struct bdaddr_t *bdaddr, uint8 *linkkey);
|
|
int8 btlib_hcicmd_linkkey_neg_reply(struct bdaddr_t *bdaddr);
|
|
|
|
int8 btlib_hcicmd_authentication_req (uint16 conn_handle);
|
|
int8 btlib_hcicmd_write_auth_enable(uint8 flag);
|
|
int8 btlib_hcicmd_set_conn_encryption (uint16 conn_handle, uint8 encry_enable);
|
|
int8 btlib_hcicmd_disconnect (uint16 conn_handle, uint8 reason);
|
|
|
|
int8 btlib_hcicmd_write_classofdevice (uint8 *class_de);
|
|
int8 btlib_hcicmd_write_localname (uint8 *local_name);
|
|
int8 btlib_hcicmd_set_bdaddr (uint8 *address);
|
|
int8 btlib_hcicmd_set_ble_bdaddr (const uint8 *address);
|
|
int8 btlib_hcicmd_write_memory(uint32 addr, uint32 value, uint8 bytelen);
|
|
|
|
int8 btlib_hcicmd_sniff_mode(uint16 conn_handle,
|
|
uint16 sniff_max_interval,
|
|
uint16 sniff_min_interval,
|
|
uint16 sniff_attempt,
|
|
uint16 sniff_timeout);
|
|
|
|
int8 btlib_hcicmd_exit_sniff_mode(uint16 conn_handle);
|
|
int8 btlib_hcicmd_bt_role_discovery(uint16 conn_handle);
|
|
int8 btlib_hcicmd_read_remote_version_info(uint16 conn_handle);
|
|
int8 btlib_hcicmd_read_remote_supported_feat(uint16 conn_handle);
|
|
int8 btlib_hcicmd_read_remote_extended_feat(uint16 conn_handle, uint8 page_n);
|
|
int8 btlib_hcicmd_write_link_policy(uint16 conn_handle, uint16 link_policy_settings);
|
|
int8 btlib_hcicmd_lowlayer_monitor(uint16 conn_handle, uint8 control_flag, uint8 report_format, uint32 data_format, uint8 report_unit);
|
|
int8 btlib_hcicmd_read_stored_linkkey(struct bdaddr_t *bdaddr, uint8 read_all_flag);
|
|
int8 btlib_hcicmd_write_stored_linkkey(struct bdaddr_t *bdaddr, uint8 *linkkey);
|
|
int8 btlib_hcicmd_delete_stored_linkkey(struct bdaddr_t *bdaddr, uint8 delete_all_flag);
|
|
|
|
int8 btlib_hcicmd_inquiry(uint32 lap, uint8 inq_period, uint8 num_rs);
|
|
int8 btlib_hcicmd_inquiry_cancel(void);
|
|
|
|
int8 btlib_hcicmd_remote_name_request(struct hci_cp_remote_name_request *req);
|
|
int8 btlib_hcicmd_remote_name_cancel(struct bdaddr_t *bdaddr);
|
|
int8 btlib_hcicmd_write_pagescan_type (const uint8 pagescan_type);
|
|
int8 btlib_hcicmd_write_inqscan_type (const uint8 inqscan_type);
|
|
int8 btlib_hcicmd_write_sleep_enable(uint8 sleep_en);
|
|
int8 btlib_hcicmd_write_inquiry_mode(uint8 mode);
|
|
int8 btlib_hcicmd_set_sco_switch (const uint16 sco_handle);
|
|
int8 btlib_hcicmd_dbg_sniffer_interface (const uint8 subcode, const uint16 connhandle);
|
|
int8 btlib_hcicmd_sco_tx_silence (const uint16 connhandle, const uint8 slience_on);
|
|
|
|
extern void delay_ms(int num);
|
|
extern char *co_strncat( char *dst, const char *src, uint32 n );
|
|
extern void *co_memcpy_reverse(void *dst, const void *src, uint32 n);
|
|
extern void *co_memcpy(void *dst, const void *src, uint32 n);
|
|
extern int co_memcmp( const void *s1, const void *s2, uint32 n );
|
|
extern int co_strncmp( const char *s1, const char *s2, uint32 n );
|
|
extern char *co_strncpy( char *dst, const char *src, uint32 n );
|
|
extern char *co_strcpy( char *dst, const char *src );
|
|
extern void *co_memset( void *s, int c, uint32 n);
|
|
|
|
#define bdaddr_equal(addr1, addr2) \
|
|
(co_memcmp((const void *)(addr1),(const void *)(addr2),6) == \
|
|
0 ? TRUE : FALSE)
|
|
|
|
#define bdaddr_set(dest, src) \
|
|
do { \
|
|
memcpy((void *)(dest),(void *)(src),6); \
|
|
} while (0);
|
|
|
|
static inline void bdaddr_cpy(struct bdaddr_t *dst, const struct bdaddr_t *src) {
|
|
co_memcpy(dst, src, sizeof(struct bdaddr_t));
|
|
}
|
|
|
|
void print_bdaddr(const struct bdaddr_t *bdaddr);
|
|
int ba2str(const struct bdaddr_t *bdaddr, char *str);
|
|
int sprintf(char *buf, const char *fmt, ...);
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#endif /* __BTLIB_H__ */
|