From ac1934f8de6382adf16552ed429abd8d77bbc4bf Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sat, 11 Feb 2023 19:47:58 +1100 Subject: [PATCH] Fixup some of the includes for the ble lib --- .../ble/ble_stack/host/conn_internal.h | 263 +++++++++--------- 1 file changed, 124 insertions(+), 139 deletions(-) diff --git a/source/Core/BSP/Pinecilv2/bl_mcu_sdk/components/ble/ble_stack/host/conn_internal.h b/source/Core/BSP/Pinecilv2/bl_mcu_sdk/components/ble/ble_stack/host/conn_internal.h index 9fbaa0d6..3e6f0fe7 100644 --- a/source/Core/BSP/Pinecilv2/bl_mcu_sdk/components/ble/ble_stack/host/conn_internal.h +++ b/source/Core/BSP/Pinecilv2/bl_mcu_sdk/components/ble/ble_stack/host/conn_internal.h @@ -1,65 +1,71 @@ /** @file * @brief Internal APIs for Bluetooth connection handling. */ - +#include "addr.h" +#include "atomic.h" +#include "slist.h" +#include "types.h" +#include "work_q.h" +#include +#include /* * Copyright (c) 2015 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ typedef enum __packed { - BT_CONN_DISCONNECTED, - BT_CONN_CONNECT_SCAN, - BT_CONN_CONNECT_DIR_ADV, - BT_CONN_CONNECT, - BT_CONN_CONNECTED, - BT_CONN_DISCONNECT, + BT_CONN_DISCONNECTED, + BT_CONN_CONNECT_SCAN, + BT_CONN_CONNECT_DIR_ADV, + BT_CONN_CONNECT, + BT_CONN_CONNECTED, + BT_CONN_DISCONNECT, } bt_conn_state_t; /* bt_conn flags: the flags defined here represent connection parameters */ enum { - BT_CONN_AUTO_CONNECT, - BT_CONN_BR_LEGACY_SECURE, /* 16 digits legacy PIN tracker */ - BT_CONN_USER, /* user I/O when pairing */ - BT_CONN_BR_PAIRING, /* BR connection in pairing context */ - BT_CONN_BR_NOBOND, /* SSP no bond pairing tracker */ - BT_CONN_BR_PAIRING_INITIATOR, /* local host starts authentication */ - BT_CONN_CLEANUP, /* Disconnected, pending cleanup */ - BT_CONN_AUTO_PHY_UPDATE, /* Auto-update PHY */ - BT_CONN_SLAVE_PARAM_UPDATE, /* If slave param update timer fired */ - BT_CONN_SLAVE_PARAM_SET, /* If slave param were set from app */ - BT_CONN_SLAVE_PARAM_L2CAP, /* If should force L2CAP for CPUP */ - BT_CONN_FORCE_PAIR, /* Pairing even with existing keys. */ + BT_CONN_AUTO_CONNECT, + BT_CONN_BR_LEGACY_SECURE, /* 16 digits legacy PIN tracker */ + BT_CONN_USER, /* user I/O when pairing */ + BT_CONN_BR_PAIRING, /* BR connection in pairing context */ + BT_CONN_BR_NOBOND, /* SSP no bond pairing tracker */ + BT_CONN_BR_PAIRING_INITIATOR, /* local host starts authentication */ + BT_CONN_CLEANUP, /* Disconnected, pending cleanup */ + BT_CONN_AUTO_PHY_UPDATE, /* Auto-update PHY */ + BT_CONN_SLAVE_PARAM_UPDATE, /* If slave param update timer fired */ + BT_CONN_SLAVE_PARAM_SET, /* If slave param were set from app */ + BT_CONN_SLAVE_PARAM_L2CAP, /* If should force L2CAP for CPUP */ + BT_CONN_FORCE_PAIR, /* Pairing even with existing keys. */ - BT_CONN_AUTO_PHY_COMPLETE, /* Auto-initiated PHY procedure done */ - BT_CONN_AUTO_FEATURE_EXCH, /* Auto-initiated LE Feat done */ - BT_CONN_AUTO_VERSION_INFO, /* Auto-initiated LE version done */ + BT_CONN_AUTO_PHY_COMPLETE, /* Auto-initiated PHY procedure done */ + BT_CONN_AUTO_FEATURE_EXCH, /* Auto-initiated LE Feat done */ + BT_CONN_AUTO_VERSION_INFO, /* Auto-initiated LE version done */ - /* Total number of flags - must be at the end of the enum */ - BT_CONN_NUM_FLAGS, + /* Total number of flags - must be at the end of the enum */ + BT_CONN_NUM_FLAGS, }; struct bt_conn_le { - bt_addr_le_t dst; + bt_addr_le_t dst; - bt_addr_le_t init_addr; - bt_addr_le_t resp_addr; + bt_addr_le_t init_addr; + bt_addr_le_t resp_addr; - u16_t interval; - u16_t interval_min; - u16_t interval_max; + u16_t interval; + u16_t interval_min; + u16_t interval_max; - u16_t latency; - u16_t timeout; - u16_t pending_latency; - u16_t pending_timeout; + u16_t latency; + u16_t timeout; + u16_t pending_latency; + u16_t pending_timeout; - u8_t features[8]; + u8_t features[8]; - struct bt_keys *keys; + struct bt_keys *keys; #if defined(CONFIG_BT_STACK_PTS) - u8_t own_adder_type; + u8_t own_adder_type; #endif }; @@ -68,107 +74,107 @@ struct bt_conn_le { #define LMP_MAX_PAGES 2 struct bt_conn_br { - bt_addr_t dst; - u8_t remote_io_capa; - u8_t remote_auth; - u8_t pairing_method; - /* remote LMP features pages per 8 bytes each */ - u8_t features[LMP_MAX_PAGES][8]; + bt_addr_t dst; + u8_t remote_io_capa; + u8_t remote_auth; + u8_t pairing_method; + /* remote LMP features pages per 8 bytes each */ + u8_t features[LMP_MAX_PAGES][8]; - struct bt_keys_link_key *link_key; + struct bt_keys_link_key *link_key; }; struct bt_conn_sco { - /* Reference to ACL Connection */ - struct bt_conn *acl; - u16_t pkt_type; + /* Reference to ACL Connection */ + struct bt_conn *acl; + u16_t pkt_type; }; #endif struct bt_conn_iso { - /* Reference to ACL Connection */ - struct bt_conn *acl; - /* CIG ID */ - uint8_t cig_id; - /* CIS ID */ - uint8_t cis_id; + /* Reference to ACL Connection */ + struct bt_conn *acl; + /* CIG ID */ + uint8_t cig_id; + /* CIS ID */ + uint8_t cis_id; }; typedef void (*bt_conn_tx_cb_t)(struct bt_conn *conn, void *user_data); struct bt_conn_tx { - sys_snode_t node; + sys_snode_t node; - bt_conn_tx_cb_t cb; - void *user_data; + bt_conn_tx_cb_t cb; + void *user_data; - /* Number of pending packets without a callback after this one */ - u32_t pending_no_cb; + /* Number of pending packets without a callback after this one */ + u32_t pending_no_cb; }; struct bt_conn { - u16_t handle; - u8_t type; - u8_t role; + u16_t handle; + u8_t type; + u8_t role; - ATOMIC_DEFINE(flags, BT_CONN_NUM_FLAGS); + ATOMIC_DEFINE(flags, BT_CONN_NUM_FLAGS); - /* Which local identity address this connection uses */ - u8_t id; + /* Which local identity address this connection uses */ + u8_t id; #if defined(CONFIG_BT_SMP) || defined(CONFIG_BT_BREDR) - bt_security_t sec_level; - bt_security_t required_sec_level; - u8_t encrypt; + bt_security_t sec_level; + bt_security_t required_sec_level; + u8_t encrypt; #endif /* CONFIG_BT_SMP || CONFIG_BT_BREDR */ - /* Connection error or reason for disconnect */ - u8_t err; + /* Connection error or reason for disconnect */ + u8_t err; - bt_conn_state_t state; + bt_conn_state_t state; - u16_t rx_len; - struct net_buf *rx; + u16_t rx_len; + struct net_buf *rx; - /* Sent but not acknowledged TX packets with a callback */ - sys_slist_t tx_pending; - /* Sent but not acknowledged TX packets without a callback before - * the next packet (if any) in tx_pending. - */ - u32_t pending_no_cb; + /* Sent but not acknowledged TX packets with a callback */ + sys_slist_t tx_pending; + /* Sent but not acknowledged TX packets without a callback before + * the next packet (if any) in tx_pending. + */ + u32_t pending_no_cb; - /* Completed TX for which we need to call the callback */ - sys_slist_t tx_complete; - struct k_work tx_complete_work; + /* Completed TX for which we need to call the callback */ + sys_slist_t tx_complete; + struct k_work tx_complete_work; - /* Queue for outgoing ACL data */ - struct k_fifo tx_queue; + /* Queue for outgoing ACL data */ + struct k_fifo tx_queue; - /* Active L2CAP channels */ - sys_slist_t channels; + /* Active L2CAP channels */ + sys_slist_t channels; - atomic_t ref; + atomic_t ref; - /* Delayed work for connection update and other deferred tasks */ - struct k_delayed_work update_work; + /* Delayed work for connection update and other deferred tasks */ + struct k_delayed_work update_work; - union { - struct bt_conn_le le; + union { + struct bt_conn_le le; #if defined(CONFIG_BT_BREDR) - struct bt_conn_br br; - struct bt_conn_sco sco; + struct bt_conn_br br; + struct bt_conn_sco sco; #endif #if defined(CONFIG_BT_AUDIO) - struct bt_conn_iso iso; + struct bt_conn_iso iso; #endif - }; + }; #if defined(CONFIG_BT_REMOTE_VERSION) - struct bt_conn_rv { - u8_t version; - u16_t manufacturer; - u16_t subversion; - } rv; + struct bt_conn_rv { + u8_t version; + u16_t manufacturer; + u16_t subversion; + } rv; #endif }; @@ -178,23 +184,19 @@ void bt_conn_reset_rx_state(struct bt_conn *conn); void bt_conn_recv(struct bt_conn *conn, struct net_buf *buf, u8_t flags); /* Send data over a connection */ -int bt_conn_send_cb(struct bt_conn *conn, struct net_buf *buf, - bt_conn_tx_cb_t cb, void *user_data); +int bt_conn_send_cb(struct bt_conn *conn, struct net_buf *buf, bt_conn_tx_cb_t cb, void *user_data); -static inline int bt_conn_send(struct bt_conn *conn, struct net_buf *buf) -{ - return bt_conn_send_cb(conn, buf, NULL, NULL); -} +static inline int bt_conn_send(struct bt_conn *conn, struct net_buf *buf) { return bt_conn_send_cb(conn, buf, NULL, NULL); } /* Add a new LE connection */ struct bt_conn *bt_conn_add_le(u8_t id, const bt_addr_le_t *peer); /** Connection parameters for ISO connections */ struct bt_iso_create_param { - uint8_t id; - uint8_t num_conns; - struct bt_conn **conns; - struct bt_iso_chan **chans; + uint8_t id; + uint8_t num_conns; + struct bt_conn **conns; + struct bt_iso_chan **chans; }; /* Bind ISO connections parameters */ @@ -251,14 +253,12 @@ struct bt_conn *bt_conn_lookup_id(u8_t id); /* Look up a connection state. For BT_ADDR_LE_ANY, returns the first connection * with the specific state */ -struct bt_conn *bt_conn_lookup_state_le(const bt_addr_le_t *peer, - const bt_conn_state_t state); +struct bt_conn *bt_conn_lookup_state_le(const bt_addr_le_t *peer, const bt_conn_state_t state); /* Set connection object in certain state and perform action related to state */ void bt_conn_set_state(struct bt_conn *conn, bt_conn_state_t state); -int bt_conn_le_conn_update(struct bt_conn *conn, - const struct bt_le_conn_param *param); +int bt_conn_le_conn_update(struct bt_conn *conn, const struct bt_le_conn_param *param); void notify_remote_info(struct bt_conn *conn); @@ -268,8 +268,7 @@ bool le_param_req(struct bt_conn *conn, struct bt_le_conn_param *param); #if defined(CONFIG_BT_SMP) /* rand and ediv should be in BT order */ -int bt_conn_le_start_encryption(struct bt_conn *conn, u8_t rand[8], - u8_t ediv[2], const u8_t *ltk, size_t len); +int bt_conn_le_start_encryption(struct bt_conn *conn, u8_t rand[8], u8_t ediv[2], const u8_t *ltk, size_t len); /* Notify higher layers that RPA was resolved */ void bt_conn_identity_resolved(struct bt_conn *conn); @@ -282,41 +281,27 @@ void bt_conn_security_changed(struct bt_conn *conn, enum bt_security_err err); /* Prepare a PDU to be sent over a connection */ #if defined(CONFIG_NET_BUF_LOG) -struct net_buf *bt_conn_create_pdu_timeout_debug(struct net_buf_pool *pool, - size_t reserve, s32_t timeout, - const char *func, int line); -#define bt_conn_create_pdu_timeout(_pool, _reserve, _timeout) \ - bt_conn_create_pdu_timeout_debug(_pool, _reserve, _timeout, \ - __func__, __LINE__) +struct net_buf *bt_conn_create_pdu_timeout_debug(struct net_buf_pool *pool, size_t reserve, s32_t timeout, const char *func, int line); +#define bt_conn_create_pdu_timeout(_pool, _reserve, _timeout) bt_conn_create_pdu_timeout_debug(_pool, _reserve, _timeout, __func__, __LINE__) -#define bt_conn_create_pdu(_pool, _reserve) \ - bt_conn_create_pdu_timeout_debug(_pool, _reserve, K_FOREVER, \ - __func__, __line__) +#define bt_conn_create_pdu(_pool, _reserve) bt_conn_create_pdu_timeout_debug(_pool, _reserve, K_FOREVER, __func__, __line__) #else -struct net_buf *bt_conn_create_pdu_timeout(struct net_buf_pool *pool, - size_t reserve, s32_t timeout); +struct net_buf *bt_conn_create_pdu_timeout(struct net_buf_pool *pool, size_t reserve, s32_t timeout); -#define bt_conn_create_pdu(_pool, _reserve) \ - bt_conn_create_pdu_timeout(_pool, _reserve, K_FOREVER) +#define bt_conn_create_pdu(_pool, _reserve) bt_conn_create_pdu_timeout(_pool, _reserve, K_FOREVER) #endif /* Prepare a PDU to be sent over a connection */ #if defined(CONFIG_NET_BUF_LOG) -struct net_buf *bt_conn_create_frag_timeout_debug(size_t reserve, s32_t timeout, - const char *func, int line); +struct net_buf *bt_conn_create_frag_timeout_debug(size_t reserve, s32_t timeout, const char *func, int line); -#define bt_conn_create_frag_timeout(_reserve, _timeout) \ - bt_conn_create_frag_timeout_debug(_reserve, _timeout, \ - __func__, __LINE__) +#define bt_conn_create_frag_timeout(_reserve, _timeout) bt_conn_create_frag_timeout_debug(_reserve, _timeout, __func__, __LINE__) -#define bt_conn_create_frag(_reserve) \ - bt_conn_create_frag_timeout_debug(_reserve, K_FOREVER, \ - __func__, __LINE__) +#define bt_conn_create_frag(_reserve) bt_conn_create_frag_timeout_debug(_reserve, K_FOREVER, __func__, __LINE__) #else struct net_buf *bt_conn_create_frag_timeout(size_t reserve, s32_t timeout); -#define bt_conn_create_frag(_reserve) \ - bt_conn_create_frag_timeout(_reserve, K_FOREVER) +#define bt_conn_create_frag(_reserve) bt_conn_create_frag_timeout(_reserve, K_FOREVER) #endif /* Initialize connection management */ @@ -326,7 +311,7 @@ int bt_conn_init(void); struct k_sem *bt_conn_get_pkts(struct bt_conn *conn); /* k_poll related helpers for the TX thread */ -int bt_conn_prepare_events(struct k_poll_event events[]); +int bt_conn_prepare_events(struct k_poll_event events[]); void bt_conn_process_tx(struct bt_conn *conn); #if defined(BFLB_BLE)