zephyr/subsys/bluetooth/controller/include/ll.h
Kumar Gala a1b77fd589 zephyr: replace zephyr integer types with C99 types
git grep -l 'u\(8\|16\|32\|64\)_t' | \
		xargs sed -i "s/u\(8\|16\|32\|64\)_t/uint\1_t/g"
	git grep -l 's\(8\|16\|32\|64\)_t' | \
		xargs sed -i "s/s\(8\|16\|32\|64\)_t/int\1_t/g"

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-06-08 08:23:57 -05:00

117 lines
5.1 KiB
C

/*
* Copyright (c) 2016-2018 Nordic Semiconductor ASA
* Copyright (c) 2016 Vinayak Kariappa Chettimada
*
* SPDX-License-Identifier: Apache-2.0
*/
#define LL_VERSION_NUMBER BT_HCI_VERSION_5_2
int ll_init(struct k_sem *sem_rx);
void ll_reset(void);
uint8_t *ll_addr_get(uint8_t addr_type, uint8_t *p_bdaddr);
uint8_t ll_addr_set(uint8_t addr_type, uint8_t const *const p_bdaddr);
#if defined(CONFIG_BT_CTLR_ADV_EXT)
uint8_t ll_adv_params_set(uint8_t handle, uint16_t evt_prop, uint32_t interval,
uint8_t adv_type, uint8_t own_addr_type,
uint8_t direct_addr_type, uint8_t const *const direct_addr,
uint8_t chan_map, uint8_t filter_policy, uint8_t *tx_pwr,
uint8_t phy_p, uint8_t skip, uint8_t phy_s, uint8_t sid, uint8_t sreq);
uint8_t ll_adv_data_set(uint16_t handle, uint8_t len, uint8_t const *const p_data);
uint8_t ll_adv_scan_rsp_set(uint16_t handle, uint8_t len, uint8_t const *const p_data);
#else /* !CONFIG_BT_CTLR_ADV_EXT */
uint8_t ll_adv_params_set(uint16_t interval, uint8_t adv_type,
uint8_t own_addr_type, uint8_t direct_addr_type,
uint8_t const *const direct_addr, uint8_t chan_map,
uint8_t filter_policy);
uint8_t ll_adv_data_set(uint8_t len, uint8_t const *const p_data);
uint8_t ll_adv_scan_rsp_set(uint8_t len, uint8_t const *const p_data);
#endif /* !CONFIG_BT_CTLR_ADV_EXT */
#if defined(CONFIG_BT_CTLR_ADV_EXT) || defined(CONFIG_BT_HCI_MESH_EXT)
#if defined(CONFIG_BT_HCI_MESH_EXT)
uint8_t ll_adv_enable(uint16_t handle, uint8_t enable,
uint8_t at_anchor, uint32_t ticks_anchor, uint8_t retry,
uint8_t scan_window, uint8_t scan_delay);
#else /* !CONFIG_BT_HCI_MESH_EXT */
uint8_t ll_adv_enable(uint16_t handle, uint8_t enable);
#endif /* !CONFIG_BT_HCI_MESH_EXT */
#else /* !CONFIG_BT_CTLR_ADV_EXT || !CONFIG_BT_HCI_MESH_EXT */
uint8_t ll_adv_enable(uint8_t enable);
#endif /* !CONFIG_BT_CTLR_ADV_EXT || !CONFIG_BT_HCI_MESH_EXT */
uint8_t ll_scan_params_set(uint8_t type, uint16_t interval, uint16_t window,
uint8_t own_addr_type, uint8_t filter_policy);
uint8_t ll_scan_enable(uint8_t enable);
uint8_t ll_wl_size_get(void);
uint8_t ll_wl_clear(void);
uint8_t ll_wl_add(bt_addr_le_t *addr);
uint8_t ll_wl_remove(bt_addr_le_t *addr);
void ll_rl_id_addr_get(uint8_t rl_idx, uint8_t *id_addr_type, uint8_t *id_addr);
uint8_t ll_rl_size_get(void);
uint8_t ll_rl_clear(void);
uint8_t ll_rl_add(bt_addr_le_t *id_addr, const uint8_t pirk[16],
const uint8_t lirk[16]);
uint8_t ll_rl_remove(bt_addr_le_t *id_addr);
void ll_rl_crpa_set(uint8_t id_addr_type, uint8_t *id_addr, uint8_t rl_idx, uint8_t *crpa);
uint8_t ll_rl_crpa_get(bt_addr_le_t *id_addr, bt_addr_t *crpa);
uint8_t ll_rl_lrpa_get(bt_addr_le_t *id_addr, bt_addr_t *lrpa);
uint8_t ll_rl_enable(uint8_t enable);
void ll_rl_timeout_set(uint16_t timeout);
uint8_t ll_priv_mode_set(bt_addr_le_t *id_addr, uint8_t mode);
uint8_t ll_create_connection(uint16_t scan_interval, uint16_t scan_window,
uint8_t filter_policy, uint8_t peer_addr_type,
uint8_t *peer_addr, uint8_t own_addr_type,
uint16_t interval, uint16_t latency, uint16_t timeout);
uint8_t ll_connect_disable(void **rx);
uint8_t ll_conn_update(uint16_t handle, uint8_t cmd, uint8_t status, uint16_t interval_min,
uint16_t interval_max, uint16_t latency, uint16_t timeout);
uint8_t ll_chm_update(uint8_t *chm);
uint8_t ll_chm_get(uint16_t handle, uint8_t *chm);
uint8_t ll_enc_req_send(uint16_t handle, uint8_t *rand, uint8_t *ediv,
uint8_t *ltk);
uint8_t ll_start_enc_req_send(uint16_t handle, uint8_t err_code,
uint8_t const *const ltk);
uint8_t ll_feature_req_send(uint16_t handle);
uint8_t ll_version_ind_send(uint16_t handle);
uint8_t ll_terminate_ind_send(uint16_t handle, uint8_t reason);
uint8_t ll_rssi_get(uint16_t handle, uint8_t *rssi);
uint8_t ll_tx_pwr_lvl_get(uint8_t handle_type,
uint16_t handle, uint8_t type, int8_t *tx_pwr_lvl);
void ll_tx_pwr_get(int8_t *min, int8_t *max);
uint8_t ll_tx_pwr_lvl_set(uint8_t handle_type,
uint16_t handle, int8_t *tx_pwr_lvl);
uint8_t ll_apto_get(uint16_t handle, uint16_t *apto);
uint8_t ll_apto_set(uint16_t handle, uint16_t apto);
uint32_t ll_length_req_send(uint16_t handle, uint16_t tx_octets, uint16_t tx_time);
void ll_length_default_get(uint16_t *max_tx_octets, uint16_t *max_tx_time);
uint32_t ll_length_default_set(uint16_t max_tx_octets, uint16_t max_tx_time);
void ll_length_max_get(uint16_t *max_tx_octets, uint16_t *max_tx_time,
uint16_t *max_rx_octets, uint16_t *max_rx_time);
uint8_t ll_phy_get(uint16_t handle, uint8_t *tx, uint8_t *rx);
uint8_t ll_phy_default_set(uint8_t tx, uint8_t rx);
uint8_t ll_phy_req_send(uint16_t handle, uint8_t tx, uint8_t flags, uint8_t rx);
/* Downstream - Data */
void *ll_tx_mem_acquire(void);
void ll_tx_mem_release(void *node_tx);
int ll_tx_mem_enqueue(uint16_t handle, void *node_tx);
/* Upstream - Num. Completes, Events and Data */
uint8_t ll_rx_get(void **node_rx, uint16_t *handle);
void ll_rx_dequeue(void);
void ll_rx_mem_release(void **node_rx);
/* External co-operation */
void ll_timeslice_ticker_id_get(uint8_t * const instance_index, uint8_t * const user_id);
void ll_radio_state_abort(void);
uint32_t ll_radio_state_is_idle(void);