system/bt/btif/src/bluetooth.cc
static int enable(bool start_restricted)
stack_manager_get_interface()->start_up_stack_async();
system/bt/btif/src/stack_manager.cc
static void start_up_stack_async(void)
thread_post(management_thread, event_start_up_stack, NULL);
static void event_start_up_stack(UNUSED_ATTR void* context)
ensure_stack_is_initialized();
init_vnd_Logger();
module_start_up(get_module(BTIF_CONFIG_MODULE));
bte_main_enable();
stack_is_running = true;
btif_thread_post(event_signal_stack_up, NULL);
system/bt/main/bte_main.cc
void bte_main_enable()
module_start_up(get_module(BTSNOOP_MODULE));
BTU_StartUp();
system/bt/stack/btu/btu_init.cc
void BTU_StartUp(void)
bt_workqueue_thread = thread_new(BT_WORKQUEUE_NAME);
thread_set_rt_priority(bt_workqueue_thread, BTU_TASK_RT_PRIORITY);
thread_post(bt_workqueue_thread, btu_task_start_up, NULL);
system/bt/stack/btu/btu_task.cc
void btu_task_start_up(UNUSED_ATTR void* context)
btu_init_core();
BTE_InitStack();
bta_sys_init();
module_init(get_module(BTE_LOGMSG_MODULE));
message_loop_thread_ = thread_new("btu message loop");
thread_set_rt_priority(message_loop_thread_, THREAD_RT_PRIORITY);
thread_post(message_loop_thread_, btu_message_loop_run, nullptr);
system/bt/stack/btu/btu_init.cc
void btu_init_core(void)
btm_init();
l2c_init();
sdp_init();
gatt_init();
SMP_Init();
btm_ble_init();
system/bt/main/bte_init.cc
void BTE_InitStack(void)
RFCOMM_Init();
BNEP_Init();
PAN_Init();
A2DP_Init();
AVRC_Init();
GAP_Init();
HID_HostInit();
MCA_Init();
system/bt/bta/sys/bta_sys_main.cc
void bta_sys_init(void)
memset(&bta_sys_cb, 0, sizeof(tBTA_SYS_CB));
bta_sys_register(BTA_ID_SYS, &bta_sys_hw_reg);
BTM_RegisterForDeviceStatusNotif((tBTM_DEV_STATUS_CB*)&bta_sys_hw_btm_cback);
bta_ar_init();