/* * Copyright (c) 2016 Nordic Semiconductor ASA * Copyright (c) 2016 Vinayak Kariappa Chettimada * * SPDX-License-Identifier: Apache-2.0 */ #ifndef _HCI_CONTROLLER_H_ #define _HCI_CONTROLLER_H_ #if defined(CONFIG_BT_HCI_ACL_FLOW_CONTROL) extern s32_t hci_hbuf_total; extern u32_t hci_hbuf_sent; extern u32_t hci_hbuf_acked; extern atomic_t hci_state_mask; #define HCI_STATE_BIT_RESET 0 #endif #define HCI_CLASS_EVT_REQUIRED 0 #define HCI_CLASS_EVT_DISCARDABLE 1 #define HCI_CLASS_EVT_CONNECTION 2 #define HCI_CLASS_ACL_DATA 3 #if defined(CONFIG_SOC_FAMILY_NRF5) #define BT_HCI_VS_HW_PLAT BT_HCI_VS_HW_PLAT_NORDIC #if defined(CONFIG_SOC_SERIES_NRF51X) #define BT_HCI_VS_HW_VAR BT_HCI_VS_HW_VAR_NORDIC_NRF51X; #elif defined(CONFIG_SOC_SERIES_NRF52X) #define BT_HCI_VS_HW_VAR BT_HCI_VS_HW_VAR_NORDIC_NRF52X; #endif #else #define BT_HCI_VS_HW_PLAT 0 #define BT_HCI_VS_HW_VAR 0 #endif /* CONFIG_SOC_FAMILY_NRF5 */ void hci_init(struct k_poll_signal *signal_host_buf); struct net_buf *hci_cmd_handle(struct net_buf *cmd); void hci_evt_encode(struct radio_pdu_node_rx *node_rx, struct net_buf *buf); s8_t hci_get_class(struct radio_pdu_node_rx *node_rx); #if defined(CONFIG_BT_CONN) int hci_acl_handle(struct net_buf *acl, struct net_buf **evt); void hci_acl_encode(struct radio_pdu_node_rx *node_rx, struct net_buf *buf); void hci_num_cmplt_encode(struct net_buf *buf, u16_t handle, u8_t num); #endif #endif /* _HCI_CONTROLLER_H_ */