]> granicus.if.org Git - esp-idf/commitdiff
component/bt : add osi_is_in_isr && fix vhci delay
authorTian Hao <tianhao@espressif.com>
Tue, 25 Jul 2017 11:58:39 +0000 (19:58 +0800)
committerTian Hao <tianhao@espressif.com>
Tue, 25 Jul 2017 11:58:39 +0000 (19:58 +0800)
components/bt/bt.c
components/bt/lib

index 17ad26f99462e2bad79fde92f159e7abd3d8a74b..61e8792da0c41597a596843d6b7d01ff08a61ab6 100644 (file)
@@ -100,6 +100,7 @@ struct osi_funcs_t {
     int32_t (* _queue_recv_from_isr)(void *queue, void *item, void *hptw);
     int32_t (* _task_create)(void *task_func, const char *name, uint32_t stack_depth, void *param, uint32_t prio, void *task_handle, uint32_t core_id);
     void (* _task_delete)(void *task_handle);
+    bool (* _is_in_isr)(void);
     void *(* _malloc)(uint32_t size);
     void (* _free)(void *p);
     int32_t (* _read_efuse_mac)(uint8_t mac[6]);
@@ -230,6 +231,11 @@ static void IRAM_ATTR task_delete_wrapper(void *task_handle)
     vTaskDelete(task_handle);
 }
 
+static bool IRAM_ATTR is_in_isr_wrapper(void)
+{
+    return (bool)xPortInIsrContext();
+}
+
 static int32_t IRAM_ATTR read_mac_wrapper(uint8_t mac[6])
 {
     return esp_read_mac(mac, ESP_MAC_BT);
@@ -270,6 +276,7 @@ static struct osi_funcs_t osi_funcs = {
     ._queue_recv_from_isr = queue_recv_from_isr_wrapper,
     ._task_create = task_create_wrapper,
     ._task_delete = task_delete_wrapper,
+    ._is_in_isr = is_in_isr_wrapper,
     ._malloc = malloc,
     ._free = free,
     ._read_efuse_mac = read_mac_wrapper,
index 11c13cfe5f0fcf68c4b08662f4bf1ae5cab3a2b0..10942b2ff00f7db473c1917f76be93e59730e73f 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 11c13cfe5f0fcf68c4b08662f4bf1ae5cab3a2b0
+Subproject commit 10942b2ff00f7db473c1917f76be93e59730e73f