| /* |
| * Copyright (c) 2016 Nordic Semiconductor ASA |
| * Copyright (c) 2016 Vinayak Kariappa Chettimada |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #if defined(CONFIG_BT_HCI_ACL_FLOW_CONTROL) |
| extern int32_t hci_hbuf_total; |
| extern uint32_t hci_hbuf_sent; |
| extern uint32_t hci_hbuf_acked; |
| extern atomic_t hci_state_mask; |
| |
| #define HCI_STATE_BIT_RESET 0 |
| #endif |
| |
| #define HCI_CLASS_NONE 0 /* Invalid class */ |
| #define HCI_CLASS_EVT_REQUIRED 1 /* Mesh and connection-{established, |
| * disconnected} |
| */ |
| #define HCI_CLASS_EVT_DISCARDABLE 2 /* Best-effort reporting. Discardable |
| * over HCI in case of overflow |
| */ |
| #define HCI_CLASS_EVT_CONNECTION 3 /* Connection management; e.g. |
| * terminate, update, encryption |
| */ |
| #define HCI_CLASS_EVT_LLCP 4 /* LL Control Procedures */ |
| #define HCI_CLASS_ACL_DATA 5 /* Asynchronous Connection Less (general |
| * data) |
| */ |
| #define HCI_CLASS_ISO_DATA 6 /* Isochronous data */ |
| |
| |
| void hci_init(struct k_poll_signal *signal_host_buf); |
| void hci_recv_fifo_reset(void); |
| struct net_buf *hci_cmd_handle(struct net_buf *cmd, void **node_rx); |
| void hci_evt_encode(struct node_rx_pdu *node_rx, struct net_buf *buf); |
| uint8_t hci_get_class(struct node_rx_pdu *node_rx); |
| void hci_disconn_complete_encode(struct pdu_data *pdu_data, uint16_t handle, |
| struct net_buf *buf); |
| void hci_disconn_complete_process(uint16_t handle); |
| void hci_num_cmplt_encode(struct net_buf *buf, uint16_t handle, uint8_t num); |
| int hci_acl_handle(struct net_buf *acl, struct net_buf **evt); |
| void hci_acl_encode(struct node_rx_pdu *node_rx, struct net_buf *buf); |
| int hci_iso_handle(struct net_buf *acl, struct net_buf **evt); |
| void hci_iso_encode(struct net_buf *buf, uint16_t handle, uint8_t flags); |
| int hci_vendor_cmd_handle(uint16_t ocf, struct net_buf *cmd, |
| struct net_buf **evt); |
| uint8_t hci_vendor_read_static_addr(struct bt_hci_vs_static_addr addrs[], |
| uint8_t size); |
| void hci_vendor_read_key_hierarchy_roots(uint8_t ir[16], uint8_t er[16]); |
| int hci_vendor_cmd_handle_common(uint16_t ocf, struct net_buf *cmd, |
| struct net_buf **evt); |
| uint8_t hci_vendor_read_std_codecs( |
| const struct bt_hci_std_codec_info_v2 **codecs); |
| uint8_t hci_vendor_read_vs_codecs( |
| const struct bt_hci_vs_codec_info_v2 **codecs); |
| uint8_t hci_vendor_read_codec_capabilities(uint8_t coding_format, |
| uint16_t company_id, |
| uint16_t vs_codec_id, |
| uint8_t transport, |
| uint8_t direction, |
| uint8_t *num_capabilities, |
| size_t *capabilities_bytes, |
| const uint8_t **capabilities); |
| uint8_t hci_vendor_read_ctlr_delay(uint8_t coding_format, |
| uint16_t company_id, |
| uint16_t vs_codec_id, |
| uint8_t transport, |
| uint8_t direction, |
| uint8_t codec_config_len, |
| const uint8_t *codec_config, |
| uint32_t *min_delay, |
| uint32_t *max_delay); |