mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'bugfix/add_protection_for_spp_api_4.0' into 'release/v4.0'
Bugfix/add protection for spp api [backport v4.0] See merge request espressif/esp-idf!10283
This commit is contained in:
commit
3c9833eaf9
@ -65,7 +65,7 @@
|
||||
|
||||
#define BTC_TASK_PINNED_TO_CORE (TASK_PINNED_TO_CORE)
|
||||
#define BTC_TASK_STACK_SIZE (BT_BTC_TASK_STACK_SIZE + BT_TASK_EXTRA_STACK_SIZE) //by menuconfig
|
||||
#define BTC_TASK_NAME "btcT"
|
||||
#define BTC_TASK_NAME "BTC_TASK"
|
||||
#define BTC_TASK_PRIO (BT_TASK_MAX_PRIORITIES - 6)
|
||||
|
||||
osi_thread_t *btc_thread;
|
||||
@ -325,9 +325,9 @@ error_exit:;
|
||||
}
|
||||
#endif ///BTC_DYNAMIC_MEMORY
|
||||
|
||||
int btc_init(void)
|
||||
bt_status_t btc_init(void)
|
||||
{
|
||||
btc_thread = osi_thread_create("BTC_TASK", BTC_TASK_STACK_SIZE, BTC_TASK_PRIO, BTC_TASK_PINNED_TO_CORE, 2);
|
||||
btc_thread = osi_thread_create(BTC_TASK_NAME, BTC_TASK_STACK_SIZE, BTC_TASK_PRIO, BTC_TASK_PINNED_TO_CORE, 2);
|
||||
if (btc_thread == NULL) {
|
||||
return BT_STATUS_NOMEM;
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ typedef void (* btc_arg_deep_copy_t)(btc_msg_t *msg, void *dst, void *src);
|
||||
|
||||
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func);
|
||||
|
||||
int btc_init(void);
|
||||
bt_status_t btc_init(void);
|
||||
void btc_deinit(void);
|
||||
bool btc_check_queue_is_congest(void);
|
||||
|
||||
|
@ -117,6 +117,7 @@ esp_err_t esp_bluedroid_init(void)
|
||||
{
|
||||
btc_msg_t msg;
|
||||
future_t **future_p;
|
||||
bt_status_t ret;
|
||||
|
||||
if (esp_bt_controller_get_status() != ESP_BT_CONTROLLER_STATUS_ENABLED) {
|
||||
LOG_ERROR("Controller not initialised\n");
|
||||
@ -132,12 +133,19 @@ esp_err_t esp_bluedroid_init(void)
|
||||
osi_mem_dbg_init();
|
||||
#endif
|
||||
|
||||
btc_init();
|
||||
/*
|
||||
* BTC Init
|
||||
*/
|
||||
ret = btc_init();
|
||||
if (ret != BT_STATUS_SUCCESS) {
|
||||
LOG_ERROR("Bluedroid Initialize Fail");
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
future_p = btc_main_get_future_p(BTC_MAIN_INIT_FUTURE);
|
||||
*future_p = future_new();
|
||||
if (*future_p == NULL) {
|
||||
LOG_ERROR("Bluedroid initialise failed\n");
|
||||
LOG_ERROR("Bluedroid Initialize Fail!");
|
||||
return ESP_ERR_NO_MEM;
|
||||
}
|
||||
|
||||
@ -146,12 +154,12 @@ esp_err_t esp_bluedroid_init(void)
|
||||
msg.act = BTC_MAIN_ACT_INIT;
|
||||
|
||||
if (btc_transfer_context(&msg, NULL, 0, NULL) != BT_STATUS_SUCCESS) {
|
||||
LOG_ERROR("Bluedroid initialise failed\n");
|
||||
LOG_ERROR("Bluedroid Initialize Fail");
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
if (future_await(*future_p) == FUTURE_FAIL) {
|
||||
LOG_ERROR("Bluedroid initialise failed\n");
|
||||
LOG_ERROR("Bluedroid Initialize Fail");
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
|
@ -94,8 +94,11 @@ tBTA_JV_STATUS BTA_JvEnable(tBTA_JV_DM_CBACK *p_cback)
|
||||
bta_sys_sendmsg(p_buf);
|
||||
status = BTA_JV_SUCCESS;
|
||||
}
|
||||
} else if (p_cback == NULL) {
|
||||
APPL_TRACE_ERROR("No p_cback.");
|
||||
} else {
|
||||
APPL_TRACE_ERROR("JVenable fails");
|
||||
APPL_TRACE_WARNING("No need to Init again.");
|
||||
// status = BTA_JV_SUCCESS;
|
||||
}
|
||||
return (status);
|
||||
}
|
||||
|
@ -504,7 +504,6 @@ void bta_sys_event(void * param)
|
||||
if (freebuf) {
|
||||
osi_free(p_msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -47,7 +47,7 @@
|
||||
#define BTU_TASK_PINNED_TO_CORE (TASK_PINNED_TO_CORE)
|
||||
#define BTU_TASK_STACK_SIZE (BT_BTU_TASK_STACK_SIZE + BT_TASK_EXTRA_STACK_SIZE)
|
||||
#define BTU_TASK_PRIO (BT_TASK_MAX_PRIORITIES - 5)
|
||||
#define BTU_TASK_NAME "btuT"
|
||||
#define BTU_TASK_NAME "BTU_TASK"
|
||||
|
||||
hash_map_t *btu_general_alarm_hash_map;
|
||||
osi_mutex_t btu_general_alarm_lock;
|
||||
|
@ -236,10 +236,6 @@ extern UINT8 A2D_SetTraceLevel (UINT8 new_level);
|
||||
******************************************************************************/
|
||||
extern UINT8 A2D_BitsSet(UINT8 num);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
** Function A2D_Init
|
||||
@ -252,6 +248,23 @@ extern UINT8 A2D_BitsSet(UINT8 num);
|
||||
**
|
||||
*******************************************************************************/
|
||||
extern bt_status_t A2D_Init(void);
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
** Function A2D_Deinit
|
||||
**
|
||||
** Description This function is called at stack startup to free the
|
||||
** control block (if using dynamic memory), and free the
|
||||
** control block and tracing level.
|
||||
**
|
||||
** Returns void
|
||||
**
|
||||
*******************************************************************************/
|
||||
extern void A2D_Deinit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif ///A2D_INCLUDED
|
||||
#endif /* A2D_API_H */
|
||||
|
@ -222,7 +222,7 @@ extern BOOLEAN SDP_ServiceSearchRequest (UINT8 *p_bd_addr,
|
||||
** Description This function queries an SDP server for information.
|
||||
**
|
||||
** The difference between this API function and the function
|
||||
** SDP_ServiceSearchRequest is that this one does a
|
||||
** SDP_ServiceSearchRequest2 is that this one does a
|
||||
** combined ServiceSearchAttributeRequest SDP function.
|
||||
**
|
||||
** Returns TRUE if discovery started, FALSE if failed.
|
||||
|
@ -2314,7 +2314,7 @@ UINT8 l2cu_get_num_hi_priority (void)
|
||||
** Description This function initiates an acl connection via HCI
|
||||
** If switch required to create connection it is already done.
|
||||
**
|
||||
** Returns TRUE if successful, FALSE if gki get buffer fails.
|
||||
** Returns TRUE if successful, FALSE if osi get buffer fails.
|
||||
**
|
||||
*******************************************************************************/
|
||||
|
||||
|
@ -210,16 +210,18 @@ void port_release_port (tPORT *p_port)
|
||||
|
||||
osi_mutex_global_lock();
|
||||
RFCOMM_TRACE_DEBUG("port_release_port, p_port:%p", p_port);
|
||||
while ((p_buf = (BT_HDR *)fixed_queue_dequeue(p_port->rx.queue, 0)) != NULL) {
|
||||
osi_free (p_buf);
|
||||
if (p_port->rx.queue) {
|
||||
while ((p_buf = (BT_HDR *)fixed_queue_dequeue(p_port->rx.queue, 0)) != NULL) {
|
||||
osi_free (p_buf);
|
||||
}
|
||||
}
|
||||
|
||||
p_port->rx.queue_size = 0;
|
||||
|
||||
while ((p_buf = (BT_HDR *)fixed_queue_dequeue(p_port->tx.queue, 0)) != NULL) {
|
||||
osi_free (p_buf);
|
||||
if (p_port->tx.queue) {
|
||||
while ((p_buf = (BT_HDR *)fixed_queue_dequeue(p_port->tx.queue, 0)) != NULL) {
|
||||
osi_free (p_buf);
|
||||
}
|
||||
}
|
||||
|
||||
p_port->tx.queue_size = 0;
|
||||
|
||||
osi_mutex_global_unlock();
|
||||
|
@ -169,9 +169,8 @@ BOOLEAN SDP_ServiceSearchRequest (UINT8 *p_bd_addr, tSDP_DISCOVERY_DB *p_db,
|
||||
** Description This function queries an SDP server for information.
|
||||
**
|
||||
** The difference between this API function and the function
|
||||
** SDP_ServiceSearchRequest is that this one does a
|
||||
** SDP_ServiceSearchRequest2 is that this one does a
|
||||
** combined ServiceSearchAttributeRequest SDP function.
|
||||
** (This is for Unplug Testing)
|
||||
**
|
||||
** Returns TRUE if discovery started, FALSE if failed.
|
||||
**
|
||||
@ -208,8 +207,8 @@ BOOLEAN SDP_ServiceSearchAttributeRequest (UINT8 *p_bd_addr, tSDP_DISCOVERY_DB *
|
||||
**
|
||||
** The difference between this API function and the function
|
||||
** SDP_ServiceSearchRequest is that this one does a
|
||||
** combined ServiceSearchAttributeRequest SDP function.
|
||||
** (This is for Unplug Testing)
|
||||
** combined ServiceSearchAttributeRequest SDP function with the
|
||||
** user data piggyback
|
||||
**
|
||||
** Returns TRUE if discovery started, FALSE if failed.
|
||||
**
|
||||
|
Loading…
Reference in New Issue
Block a user