Home | History | Annotate | Download | only in btm

Lines Matching refs:btm_cb

213             if (memcmp(btm_cb.devcb.id_keys.ir, &temp_value, sizeof(BT_OCTET16)) == 0)
225 btm_cb.api = *p_cb_info;
227 BTM_TRACE_ERROR ("BTM_SecRegister: btm_cb.api.p_le_callback = 0x%x ", btm_cb.api.p_le_callback);
247 btm_cb.api.p_link_key_callback = p_callback;
268 if (btm_cb.p_rmt_name_callback[i] == NULL)
270 btm_cb.p_rmt_name_callback[i] = p_callback;
295 if (btm_cb.p_rmt_name_callback[i] == p_callback)
297 btm_cb.p_rmt_name_callback[i] = NULL;
320 btm_cb.p_conn_filter_cb = p_callback;
334 return(btm_cb.security_mode);
397 UINT8 old_mode = btm_cb.security_mode;
421 btm_cb.security_mode = security_mode;
423 if (HCI_SIMPLE_PAIRING_SUPPORTED(btm_cb.devcb.local_lmp_features[HCI_EXT_FEATURES_PAGE_0]))
426 btm_cb.security_mode = BTM_SEC_MODE_SP;
472 if ( (btm_cb.cfg.pin_type != pin_type)
473 && (btm_cb.devcb.state > BTM_DEV_STATE_WAIT_AFTER_RESET) )
478 btm_cb.cfg.pin_type = pin_type;
479 btm_cb.cfg.pin_code_len = pin_code_len;
480 memcpy (btm_cb.cfg.pin_code, pin_code, pin_code_len);
501 btm_cb.pairing_disabled = !allow_pairing;
502 btm_cb.connect_only_paired = connect_only_paired;
643 p_srec = &btm_cb.sec_serv_rec[0];
689 p_srec = &btm_cb.sec_serv_rec[index];
721 if (btm_cb.security_mode == BTM_SEC_MODE_SP)
738 btm_cb.p_out_serv = p_srec;
766 if (btm_cb.security_mode == BTM_SEC_MODE_SP)
834 tBTM_SEC_SERV_REC *p_srec = &btm_cb.sec_serv_rec[0];
874 tBTM_SEC_SERV_REC *p_srec = &btm_cb.sec_serv_rec[0];
941 tBTM_SEC_SERV_REC *p_srec = &btm_cb.sec_serv_rec[0];
983 btm_pair_state_descr(btm_cb.pairing_state), btm_cb.pairing_flags, pin_len, res);
986 if (btm_cb.pairing_state != BTM_PAIR_STATE_WAIT_LOCAL_PIN)
988 BTM_TRACE_WARNING ("BTM_PINCodeReply() - Wrong State: %d", btm_cb.pairing_state);
992 if (memcmp (bd_addr, btm_cb.pairing_bda, BD_ADDR_LEN) != 0)
1010 if ((btm_cb.pairing_flags & BTM_PAIR_FLAGS_PEER_STARTED_DD) ||
1011 ((btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD) &&
1012 (btm_cb.pairing_flags & BTM_PAIR_FLAGS_DISC_WHEN_DONE)) )
1016 btm_cb.acl_disc_reason = HCI_ERR_HOST_REJECT_SECURITY;
1031 if ( (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD)
1033 && (btm_cb.security_mode_changed == FALSE) )
1036 btm_cb.pin_code_len = pin_len;
1037 memcpy (btm_cb.pin_code, p_pin, pin_len);
1039 btm_cb.security_mode_changed = TRUE;
1045 btm_cb.acl_disc_reason = 0xff ;
1049 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_REJECTED_CONNECT)
1067 if (btm_cb.api.p_auth_complete_callback)
1068 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
1075 btm_cb.acl_disc_reason = HCI_SUCCESS;
1078 BTM_TRACE_EVENT("BTM_PINCodeReply(): Saving pin_len: %d btm_cb.pin_code_len: %d", pin_len, btm_cb.pin_code_len);
1080 if (btm_cb.pin_code_len == 0)
1081 memcpy (btm_cb.pin_code, p_pin, pin_len);
1082 btm_cb.pin_code_len_saved = pin_len;
1176 if (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
1178 BTM_TRACE_ERROR ("BTM_SecBond: already busy in state: %s", btm_pair_state_descr(btm_cb.pairing_state));
1210 btm_cb.pin_code_len = pin_len;
1211 memcpy (btm_cb.pin_code, p_pin, PIN_CODE_LEN);
1214 memcpy (btm_cb.pairing_bda, bd_addr, BD_ADDR_LEN);
1216 btm_cb.pairing_flags = BTM_PAIR_FLAGS_WE_STARTED_DD;
1230 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_LE_ACTIVE;
1236 btm_cb.pairing_flags = 0;
1246 if (!HCI_SIMPLE_PAIRING_SUPPORTED(btm_cb.devcb.local_lmp_features[HCI_EXT_FEATURES_PAGE_0]))
1253 && (btm_cb.cfg.pin_type != HCI_PIN_TYPE_FIXED))
1255 btm_cb.pin_type_changed = TRUE;
1288 BTM_TRACE_DEBUG ("sec mode: %d sm4:x%x", btm_cb.security_mode, p_dev_rec->sm4);
1289 if (!HCI_SIMPLE_PAIRING_SUPPORTED(btm_cb.devcb.local_lmp_features[HCI_EXT_FEATURES_PAGE_0])
1295 if (BTM_SEC_MODE_SP == btm_cb.security_mode && BTM_SEC_IS_SM4_UNKNOWN(p_dev_rec->sm4))
1312 btm_pair_state_descr (btm_cb.pairing_state), p_dev_rec->sm4, p_dev_rec->sec_state);
1401 btm_pair_state_descr (btm_cb.pairing_state), btm_cb.pairing_flags);
1404 || (memcmp (btm_cb.pairing_bda, bd_addr, BD_ADDR_LEN) != 0) )
1408 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_LE_ACTIVE)
1423 if (BTM_PAIR_STATE_WAIT_LOCAL_PIN == btm_cb.pairing_state &&
1424 BTM_PAIR_FLAGS_WE_STARTED_DD & btm_cb.pairing_flags)
1432 if ( (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
1433 && (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD))
1443 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_DISC_WHEN_DONE)
1453 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_DISC_WHEN_DONE)
1460 if (btm_cb.pairing_state == BTM_PAIR_STATE_GET_REM_NAME)
1463 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_WE_CANCEL_DD;
1501 btm_cb.mkey_cback = mkey_cback;
1697 btm_pair_state_descr(btm_cb.pairing_state), res);
1700 if ( (btm_cb.pairing_state != BTM_PAIR_STATE_WAIT_NUMERIC_CONFIRM)
1701 || (memcmp (btm_cb.pairing_bda, bd_addr, BD_ADDR_LEN) != 0) )
1708 btm_cb.acl_disc_reason = HCI_SUCCESS;
1721 btm_cb.acl_disc_reason = HCI_ERR_HOST_REJECT_SECURITY;
1745 btm_pair_state_descr(btm_cb.pairing_state), res);
1747 if ( (btm_cb.pairing_state == BTM_PAIR_STATE_IDLE)
1748 || (memcmp (btm_cb.pairing_bda, bd_addr, BD_ADDR_LEN) != 0) )
1754 if ( (btm_cb
1758 btm_cb.acl_disc_reason = HCI_ERR_HOST_REJECT_SECURITY;
1771 else if (btm_cb.pairing_state != BTM_PAIR_STATE_KEY_ENTRY)
1782 btm_cb.acl_disc_reason = HCI_ERR_HOST_REJECT_SECURITY;
1787 btm_cb.acl_disc_reason = HCI_SUCCESS;
1811 if (btm_cb.pairing_state == BTM_PAIR_STATE_KEY_ENTRY)
1835 btm_pair_state_descr(btm_cb.pairing_state), oob, io_cap);
1837 if ( (btm_cb.pairing_state != BTM_PAIR_STATE_WAIT_LOCAL_IOCAPS)
1838 || (memcmp (btm_cb.pairing_bda, bd_addr, BD_ADDR_LEN) != 0) )
1843 btm_cb.devcb.loc_auth_req = auth_req;
1844 btm_cb.devcb.loc_io_caps = io_cap;
1846 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD)
1886 btm_pair_state_descr(btm_cb.pairing_state), res);
1889 if (btm_cb.pairing_state != BTM_PAIR_STATE_WAIT_LOCAL_OOB_RSP)
1897 btm_cb.acl_disc_reason = HCI_ERR_HOST_REJECT_SECURITY;
1902 btm_cb.acl_disc_reason = HCI_SUCCESS;
1940 BDADDR_TO_STREAM(p, btm_cb.devcb.local_addr);
1975 DEVCLASS_TO_STREAM(p, btm_cb.devcb.dev_class);
1981 if (name_size > strlen(btm_cb.cfg.bd_name))
1984 name_size = (UINT16)strlen(btm_cb.cfg.bd_name);
1991 ARRAY_TO_STREAM (p, btm_cb.cfg.bd_name, name_size);
2090 tBTM_SEC_SERV_REC *p_serv_rec = &btm_cb.sec_serv_rec[0];
2093 btm_cb.p_out_serv = p_serv_rec;
2104 btm_cb.p_out_serv = p_serv_rec;
2150 && (btm_sec_io_map[p_dev_rec->rmt_io_caps][btm_cb.devcb.loc_io_caps])) /* authenticated link key is possible */
2189 if (btm_cb.api.p_sp_callback)
2190 (*btm_cb.api.p_sp_callback) (BTM_SP_UPGRADE_EVT, (tBTM_SP_EVT_DATA *)&evt_data);
2323 if ( (p_dev_rec->p_callback) || (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE) )
2326 psm, btm_pair_state_descr(btm_cb.pairing_state), btm_cb.security_mode, p_dev_rec->sm4);
2329 if ((BTM_SEC_MODE_SP != btm_cb.security_mode)
2330 || ((BTM_SEC_MODE_SP == btm_cb.security_mode) && (BTM_SM4_KNOWN == p_dev_rec->sm4))
2369 btm_cb.sec_req_pending = TRUE;
2378 if (btm_cb.security_mode == BTM_SEC_MODE_SP)
2464 if (is_originator && (btm_cb.security_mode != BTM_SEC_MODE_SP || !BTM_SEC_IS_SM4(p_dev_rec->sm4)) && (psm >= 0x1001))
2584 if ( (p_dev_rec->p_callback) || (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE) )
2587 psm, mx_proto_id, mx_chan_id, btm_pair_state_descr(btm_cb.pairing_state));
2591 if ((BTM_SEC_MODE_SP != btm_cb.security_mode)
2592 || ((BTM_SEC_MODE_SP == btm_cb.security_mode) && (BTM_SM4_KNOWN == p_dev_rec->sm4))
2632 if (BTM_SEC_MODE_SP == btm_cb.security_mode)
2682 if (btm_cb.devcb.state != BTM_DEV_STATE_READY)
2692 if (btm_cb.connect_only_paired)
2704 if (btm_cb.btm_inq_vars.discoverable_mode == BTM_NON_DISCOVERABLE)
2716 if (btm_cb.p_conn_filter_cb)
2718 if (!(* btm_cb.p_conn_filter_cb) (bda, dc))
2728 if ((btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
2729 &&(btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD)
2730 &&(!memcmp (btm_cb.pairing_bda, bda, BD_ADDR_LEN)))
2735 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_REJECTED_CONNECT;
2742 memcpy (btm_cb.connecting_bda, bda, BD_ADDR_LEN);
2743 memcpy (btm_cb.connecting_dc, dc, DEV_CLASS_LEN);
2773 if ((btm_cb.pairing_flags & BTM_PAIR_FLAGS_DISC_WHEN_DONE) ||
2774 (BTM_PAIR_STATE_WAIT_LOCAL_PIN == btm_cb.pairing_state &&
2775 BTM_PAIR_FLAGS_WE_STARTED_DD & btm_cb.pairing_flags) ||
2776 (btm_cb.pairing_state == BTM_PAIR_STATE_GET_REM_NAME &&
2777 BTM_PAIR_FLAGS_WE_CANCEL_DD & btm_cb.pairing_flags))
2785 if ((p_dev_rec = btm_find_dev (btm_cb.pairing_bda)) != NULL)
2790 if (btm_cb.api.p_bond_cancel_cmpl_callback)
2791 btm_cb.api.p_bond_cancel_cmpl_callback(BTM_SUCCESS);
2812 btm_pair_state_descr(btm_cb.pairing_state), status);
2826 if (btm_cb.api.p_bond_cancel_cmpl_callback)
2827 btm_cb.api.p_bond_cancel_cmpl_callback(BTM_ERR_PROCESSING);
2847 if (btm_cb.pairing_state == BTM_PAIR_STATE_IDLE)
2850 if (btm_cb.sec_req_pending)
2852 btm_cb.sec_req_pending = FALSE;
2857 bq = btm_cb.sec_pending_q;
2859 GKI_init_q (&btm_cb.sec_pending_q);
2893 memset (btm_cb.sec_serv_rec, 0, sizeof (btm_cb.sec_serv_rec));
2894 memset (btm_cb.sec_dev_rec, 0, sizeof (btm_cb.sec_dev_rec));
2895 memset (&btm_cb.pairing_tle, 0, sizeof(TIMER_LIST_ENT));
2898 btm_cb.security_mode = sec_mode;
2899 memset (btm_cb.pairing_bda, 0xff, BD_ADDR_LEN);
2900 btm_cb.max_collision_delay = BTM_SEC_MAX_COLLISION_DELAY;
2915 BTM_TRACE_EVENT ("btm_sec_device_down() State: %s", btm_pair_state_descr(btm_cb.pairing_state));
2932 if (btm_cb.security_mode == BTM_SEC_MODE_LINK)
2943 if (HCI_SIMPLE_PAIRING_SUPPORTED(btm_cb.devcb.local_lmp_features[HCI_EXT_FEATURES_PAGE_0]))
2957 btm_cb.devcb.loc_io_caps = BTM_LOCAL_IO_CAPS;
2966 btm_cb.security_mode = BTM_SEC_MODE_SERVICE;
2969 BTM_TRACE_DEBUG ("btm_sec_dev_reset sec mode: %d", btm_cb.security_mode);
2991 if (btm_cb.api.p_abort_callback)
2992 (*btm_cb.api.p_abort_callback)(bd_addr, p_dev_rec->dev_class, p_dev_rec->sec_bd_name);
3027 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_DISC_WHEN_DONE;
3070 if (((p_bd_addr == NULL) && !BTM_ACL_IS_CONNECTED(btm_cb.connecting_bda))
3082 p_dev_rec = &btm_cb.sec_dev_rec[0];
3108 btm_pair_state_descr (btm_cb.pairing_state), p_bd_name,
3114 btm_pair_state_descr (btm_cb.pairing_state), p_bd_name,
3140 if (btm_cb.p_rmt_name_callback[i] && p_bd_addr)
3141 (*btm_cb.p_rmt_name_callback[i])(p_bd_addr, p_dev_rec->dev_class,
3154 if (btm_cb.p_rmt_name_callback[i] && p_bd_addr)
3155 (*btm_cb.p_rmt_name_callback[i])(p_bd_addr, dev_class, (UINT8 *)"");
3162 if ( (btm_cb.pairing_state == BTM_PAIR_STATE_WAIT_LOCAL_PIN) && p_bd_addr
3163 && (memcmp (btm_cb.pairing_bda, p_bd_addr, BD_ADDR_LEN) == 0) )
3165 BTM_TRACE_EVENT ("btm_sec_rmt_name_request_complete() delayed pin now being requested flags:0x%x, (p_pin_callback=0x%p)", btm_cb.pairing_flags, btm_cb.api.p_pin_callback);
3167 if (((btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD) == 0) &&
3168 ((btm_cb.pairing_flags & BTM_PAIR_FLAGS_PIN_REQD) == 0) &&
3169 btm_cb.api.p_pin_callback)
3172 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_PIN_REQD;
3173 (*btm_cb.api.p_pin_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class, p_bd_name);
3182 if ( btm_cb.pairing_state == BTM_PAIR_STATE_GET_REM_NAME)
3184 if (p_bd_addr && memcmp (btm_cb.pairing_bda, p_bd_addr, BD_ADDR_LEN) == 0)
3187 if(btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_CANCEL_DD)
3197 if (btm_cb.api.p_auth_complete_callback)
3198 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
3209 btm_cb.pairing_flags);
3210 if ((btm_cb.pairing_flags & BTM_PAIR_FLAGS_REJECTED_CONNECT) == 0)
3227 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_REJECTED_CONNECT)
3238 if (btm_cb.api.p_auth_complete_callback)
3239 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
3249 BTM_ReadRemoteDeviceName (btm_cb.pairing_bda, NULL, BT_TRANSPORT_BR_EDR);
3269 if (btm_cb.api.p_auth_complete_callback)
3270 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr,
3278 if ((btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD)
3371 evt_data.io_cap = btm_cb.devcb.loc_io_caps;
3375 BTM_TRACE_EVENT ("btm_io_capabilities_req() State: %s", btm_pair_state_descr(btm_cb.pairing_state));
3381 btm_pair_state_descr(btm_cb.pairing_state), btm_cb.pairing_flags, p_dev_rec->p_cur_service);
3383 if (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
3385 if (btm_cb.pairing_state == BTM_PAIR_STATE_INCOMING_SSP)
3390 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_PEER_STARTED_DD)
3394 else if (btm_cb.pairing_state == BTM_PAIR_STATE_WAIT_PIN_REQ)
3400 if (memcmp (evt_data.bd_addr, btm_cb.pairing_bda, BD_ADDR_LEN))
3418 if (btm_cb.pairing_disabled)
3436 if (!(btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD) &&
3447 memcpy (btm_cb.pairing_bda, evt_data.bd_addr, BD_ADDR_LEN);
3453 if (!memcmp (evt_data.bd_addr, btm_cb.connecting_bda, BD_ADDR_LEN))
3454 memcpy (p_dev_rec->dev_class, btm_cb.connecting_dc, DEV_CLASS_LEN);
3466 else if (btm_cb.api.p_sp_callback)
3469 callback_rc = (*btm_cb.api.p_sp_callback) (BTM_SP_IO_REQ_EVT, (tBTM_SP_EVT_DATA *)&evt_data);
3478 if ((btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD))
3485 btm_cb.devcb.loc_auth_req = evt_data.auth_req;
3486 btm_cb.devcb.loc_io_caps = evt_data.io_cap;
3489 btm_pair_state_descr(btm_cb.pairing_state), evt_data.io_cap,
3521 if (btm_cb.pairing_state == BTM_PAIR_STATE_IDLE)
3523 memcpy (btm_cb.pairing_bda, evt_data.bd_addr, BD_ADDR_LEN);
3543 if (!memcmp (evt_data.bd_addr, btm_cb.connecting_bda, BD_ADDR_LEN))
3544 memcpy (p_dev_rec->dev_class, btm_cb.connecting_dc, DEV_CLASS_LEN);
3547 if (btm_cb.pairing_state == BTM_PAIR_STATE_INCOMING_SSP /* peer initiated bonding */
3550 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_PEER_STARTED_DD;
3557 if (btm_cb.api.p_sp_callback)
3558 (*btm_cb.api.p_sp_callback) (BTM_SP_IO_RSP_EVT, (tBTM_SP_EVT_DATA *)&evt_data);
3585 event, btm_pair_state_descr(btm_cb.pairing_state));
3588 && (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
3589 && (memcmp (btm_cb.pairing_bda, p_bda, BD_ADDR_LEN) == 0) )
3610 && (btm_cb.devcb.loc_io_caps == BTM_IO_CAP_IO)
3611 && ((p_dev_rec->rmt_auth_req & BTM_AUTH_SP_YES) || (btm_cb.devcb.loc_auth_req & BTM_AUTH_SP_YES)) )
3619 evt_data.cfm_req.just_works, btm_cb.devcb.loc_io_caps, p_dev_rec->rmt_io_caps,
3620 btm_cb.devcb.loc_auth_req, p_dev_rec->rmt_auth_req);
3622 evt_data.cfm_req.loc_auth_req = btm_cb.devcb.loc_auth_req;
3624 evt_data.cfm_req.loc_io_caps = btm_cb.devcb.loc_io_caps;
3645 if (btm_cb.api.p_sp_callback)
3647 status = (*btm_cb.api.p_sp_callback) (event, (tBTM_SP_EVT_DATA *)&evt_data);
3675 btm_cb.acl_disc_reason = HCI_ERR_HOST_REJECT_SECURITY;
3718 if (btm_cb.api.p_sp_callback)
3725 (*btm_cb.api.p_sp_callback) (BTM_SP_KEYPRESS_EVT, (tBTM_SP_EVT_DATA *)&evt_data);
3758 btm_pair_state_descr(btm_cb.pairing_state), status, p_dev_rec->sec_state);
3774 btu_start_timer (&btm_cb.pairing_tle, BTU_TTYPE_USER_FUNC, BT_1SEC_TIMEOUT);
3776 else if (memcmp (btm_cb.pairing_bda, evt_data.bd_addr, BD_ADDR_LEN) == 0)
3779 btu_stop_timer (&btm_cb.pairing_tle);
3795 if (btm_cb.api.p_sp_callback)
3796 (*btm_cb.api.p_sp_callback) (BTM_SP_COMPLT_EVT, (tBTM_SP_EVT_DATA *)&evt_data);
3836 btm_cb.api.p_sp_callback)
3844 if ((*btm_cb.api.p_sp_callback) (BTM_SP_RMT_OOB_EVT, (tBTM_SP_EVT_DATA *)&evt_data) == BTM_NOT_AUTHORIZED)
3852 btm_cb.acl_disc_reason = HCI_ERR_HOST_REJECT_SECURITY;
3881 if (btm_cb.api.p_sp_callback)
3882 (*btm_cb.api.p_sp_callback) (BTM_SP_LOC_OOB_EVT, (tBTM_SP_EVT_DATA *)&evt_data);
3900 if (!btm_cb.collision_start_time)
3901 btm_cb.collision_start_time = GKI_get_tick_count ();
3903 if ((GKI_get_tick_count () - btm_cb.collision_start_time) < btm_cb.max_collision_delay)
3920 btm_cb.p_collided_dev_rec = p_dev_rec;
3921 btm_cb.sec_collision_tle.param = (UINT32) btm_sec_collision_timeout;
3922 btu_start_timer (&btm_cb.sec_collision_tle, BTU_TTYPE_USER_FUNC, BT_1SEC_TIMEOUT);
3940 tBTM_PAIRING_STATE old_state = btm_cb.pairing_state;
3950 btm_pair_state_descr (btm_cb.pairing_state),
3959 btm_pair_state_descr (btm_cb.pairing_state),
3971 btm_cb.collision_start_time = 0;
3979 && (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD)
3980 && !(btm_cb.pairing_flags & BTM_PAIR_FLAGS_DISC_WHEN_DONE))
3994 if ( (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
3995 && (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD)
3996 && (memcmp (p_dev_rec->bd_addr, btm_cb.pairing_bda, BD_ADDR_LEN) == 0) )
4003 if ( (btm_cb.api.p_auth_complete_callback && status != HCI_SUCCESS)
4006 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr,
4027 if (btm_cb.api.p_auth_complete_callback)
4031 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr,
4089 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_DISC_WHEN_DONE)
4126 if (btm_cb.mkey_cback)
4129 (btm_cb.mkey_cback)(bd_addr, status, key_flg );
4131 (btm_cb.mkey_cback)(p_dev_rec->bd_addr, status, key_flg );
4163 btm_cb.collision_start_time = 0;
4190 p_acl = &btm_cb.acl_db[acl_idx];
4250 memcpy (btm_cb.connecting_bda, p_dev_rec->bd_addr, BD_ADDR_LEN);
4251 memcpy (btm_cb.connecting_dc, p_dev_rec->dev_class, DEV_CLASS_LEN);
4253 btm_cb.acl_disc_reason = 0xff ;
4278 tBTM_SEC_DEV_REC *p_dev_rec = btm_cb.p_collided_dev_rec;
4282 btm_cb.sec_collision_tle.param = 0;
4283 btm_cb.p_collided_dev_rec = 0;
4291 if (btm_cb.api.p_auth_complete_callback)
4292 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
4323 btm_pair_state_descr(btm_cb.pairing_state), handle, status, enc_mode,
4330 btm_pair_state_descr(btm_cb.pairing_state), handle, status, enc_mode,
4355 p_dev_rec->timestamp = btm_cb.dev_rec_count++;
4359 if ( (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
4360 && (memcmp (btm_cb.pairing_bda, p_dev_rec->bd_addr, BD_ADDR_LEN) == 0)
4361 && (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD) )
4365 if ((status != HCI_SUCCESS)&&(btm_cb.pairing_state == BTM_PAIR_STATE_WAIT_PIN_REQ))
4374 btm_cb.p_collided_dev_rec = p_dev_rec;
4375 btm_cb.sec_collision_tle.param = (UINT32) btm_sec_connect_after_reject_timeout;
4376 btu_start_timer (&btm_cb.sec_collision_tle, BTU_TTYPE_USER_FUNC, 0);
4408 if ( (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
4409 && (memcmp (btm_cb.pairing_bda, bda, BD_ADDR_LEN) == 0) )
4413 &&(btm_cb.pairing_flags & BTM_PAIR_FLAGS_REJECTED_CONNECT))
4416 btm_cb.pairing_flags, p_dev_rec->sm4);
4418 btm_cb.pairing_flags &= ~BTM_PAIR_FLAGS_REJECTED_CONNECT;
4428 if (btm_cb.pairing_state != BTM_PAIR_STATE_WAIT_LOCAL_PIN)
4432 btm_cb.p_collided_dev_rec = p_dev_rec;
4433 btm_cb.sec_collision_tle.param = (UINT32) btm_sec_connect_after_reject_timeout;
4434 btu_start_timer (&btm_cb.sec_collision_tle, BTU_TTYPE_USER_FUNC, 0);
4465 if (btm_cb.api.p_auth_complete_callback)
4467 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr,
4494 if (btm_cb.acl_disc_reason == HCI_ERR_HOST_REJECT_SECURITY)
4501 if (btm_cb.api.p_auth_complete_callback)
4503 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr,
4532 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD)
4537 if (btm_cb.api.p_auth_complete_callback)
4538 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr,
4566 btm_set_packet_types (p_acl_cb, btm_cb.btm_acl_pkt_types_supported);
4568 if (btm_cb.btm_def_link_policy)
4569 BTM_SetLinkPolicy (p_acl_cb->remote_addr, &btm_cb.btm_def_link_policy);
4583 if (btm_cb.security_mode == BTM_SEC_MODE_LINK)
4663 if ( (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
4664 && (memcmp (btm_cb.pairing_bda, p_dev_rec->bd_addr, BD_ADDR_LEN) == 0)
4665 && (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD) )
4668 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_DISC_WHEN_DONE;
4688 UINT8 old_pairing_flags = btm_cb.pairing_flags;
4694 btm_cb.discing = FALSE;
4714 p_dev_rec->security_required, btm_pair_state_descr(btm_cb.pairing_state), reason, (p_dev_rec->bd_addr[0]<<8)+p_dev_rec->bd_addr[1],
4720 if ( (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
4721 && (memcmp (btm_cb.pairing_bda, p_dev_rec->bd_addr, BD_ADDR_LEN) == 0))
4725 if (btm_cb.api.p_auth_complete_callback)
4739 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
4800 if (btm_cb.devcb.local_version.hci_version < HCI_VERSION_1_1)
4812 if ( (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
4813 && (memcmp (btm_cb.pairing_bda, p_bda, BD_ADDR_LEN) == 0) )
4815 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD)
4847 if (btm_cb.api.p_auth_complete_callback)
4848 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
4857 if (btm_cb.api.p_link_key_callback)
4859 (*btm_cb.api.p_link_key_callback) (p_bda, p_dev_rec->dev_class, p_dev_rec->sec_bd_name,
4881 if( (btm_cb.pairing_state == BTM_PAIR_STATE_WAIT_PIN_REQ) &&
4882 (btm_cb.collision_start_time != 0) &&
4883 (memcmp (btm_cb.p_collided_dev_rec->bd_addr, p_bda, BD_ADDR_LEN) == 0) )
4887 btm_cb.pairing_state, btm_cb.collision_start_time);
4901 if ( (btm_cb.pairing_state == BTM_PAIR_STATE_IDLE)
4902 || (memcmp (p_bda, btm_cb.pairing_bda, BD_ADDR_LEN) != 0) )
4904 if (btm_cb.api.p_link_key_req_callback)
4906 if ((*btm_cb.api.p_link_key_req_callback)(p_bda, p_dev_rec->link_key) == BTM_SUCCESS)
4930 tBTM_CB *p_cb = &btm_cb;
4958 if ( (btm_cb.pairing_flags & BTM_PAIR_FLAGS_PRE_FETCH_PIN) == 0)
4962 if (btm_cb.api.p_auth_complete_callback)
4967 (*btm_cb.api.p_auth_complete_callback) (p_cb->pairing_bda,
4972 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr,
4992 if (btm_cb.pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD)
4995 btsnd_hcic_io_cap_req_reply (p_cb->pairing_bda, btm_cb.devcb.loc_io_caps,
5023 if (btm_cb.api.p_auth_complete_callback)
5028 (*btm_cb.api.p_auth_complete_callback) (p_cb->pairing_bda,
5033 (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr,
5040 BTM_TRACE_WARNING ("btm_sec_pairing_timeout() not processed state: %s", btm_pair_state_descr(btm_cb.pairing_state));
5058 tBTM_CB *p_cb = &btm_cb;
5065 btm_pair_state_descr(btm_cb.pairing_state),
5068 if (btm_cb
5070 if ( (memcmp (p_bda, btm_cb.pairing_bda, BD_ADDR_LEN) == 0) &&
5071 (btm_cb.pairing_state == BTM_PAIR_STATE_WAIT_AUTH_COMPLETE) )
5074 // btm_cb.pairing_state = BTM_PAIR_STATE_IDLE;
5075 if(! btm_cb.pin_code_len_saved)
5082 btsnd_hcic_pin_code_req_reply (p_bda, btm_cb.pin_code_len_saved, p_cb->pin_code);
5086 else if ((btm_cb.pairing_state != BTM_PAIR_STATE_WAIT_PIN_REQ)
5087 || memcmp (p_bda, btm_cb.pairing_bda, BD_ADDR_LEN) != 0)
5090 btm_pair_state_descr(btm_cb.pairing_state));
5095 if(! btm_cb.pin_code_len_saved)
5103 btsnd_hcic_pin_code_req_reply (p_bda, btm_cb.pin_code_len_saved, p_cb->pin_code);
5116 if (btm_cb.pairing_state == BTM_PAIR_STATE_IDLE)
5118 memcpy (btm_cb.pairing_bda, p_bda, BD_ADDR_LEN);
5120 btm_cb.pairing_flags = BTM_PAIR_FLAGS_PEER_STARTED_DD;
5139 if (btm_cb.pin_code_len != 0)
5142 btsnd_hcic_pin_code_req_reply (p_bda, btm_cb.pin_code_len, p_cb->pin_code);
5145 btm_cb.pin_code_len_saved = btm_cb.pin_code_len;
5149 btm_cb.pin_code_len = 0;
5178 btm_cb.pin_code_len_saved = 0;
5193 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_PIN_REQD;
5213 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_PIN_REQD;
5447 if (!btm_cb.api.p_authorize_callback)
5468 result = (*btm_cb.api.p_authorize_callback) (p_dev_rec->bd_addr,
5531 tBTM_SEC_SERV_REC *p_serv_rec = &btm_cb.sec_serv_rec[0];
5545 if (is_originator && btm_cb.p_out_serv && btm_cb.p_out_serv->psm == psm)
5549 return btm_cb.p_out_serv;
5574 tBTM_SEC_SERV_REC *p_serv_rec = &btm_cb.sec_serv_rec[0];
5605 tBTM_SEC_SERV_REC *p_out_serv = btm_cb.p_out_serv;
5606 tBTM_SEC_SERV_REC *p_serv_rec = &btm_cb.sec_serv_rec[0];
5616 return btm_cb.p_out_serv;
5651 btm_cb.sec_collision_tle.param = 0;
5653 status = btm_sec_execute_procedure (btm_cb.p_collided_dev_rec);
5659 btm_sec_dev_rec_cback_event (btm_cb.p_collided_dev_rec, status, FALSE);
5674 if (btm_cb.api.p_link_key_callback)
5675 (*btm_cb.api.p_link_key_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
5719 if (btm_cb.security_mode_changed)
5721 btm_cb.security_mode_changed = FALSE;
5722 BTM_TRACE_DEBUG("btm_restore_mode: Authen Enable -> %d", (btm_cb.security_mode == BTM_SEC_MODE_LINK));
5723 btsnd_hcic_write_auth_enable ((UINT8)(btm_cb.security_mode == BTM_SEC_MODE_LINK));
5726 if (btm_cb.pin_type_changed)
5728 btm_cb.pin_type_changed = FALSE;
5729 btsnd_hcic_write_pin_type (btm_cb.cfg.pin_type);
5746 tBTM_SEC_DEV_REC *p_dev_rec = &btm_cb.sec_dev_rec[0];
5802 tBTM_PAIRING_STATE old_state = btm_cb.pairing_state;
5804 BTM_TRACE_EVENT ("btm_sec_change_pairing_state Old: %s", btm_pair_state_descr(btm_cb.pairing_state));
5805 BTM_TRACE_EVENT ("btm_sec_change_pairing_state New: %s pairing_flags:0x%x",btm_pair_state_descr(new_state), btm_cb.pairing_flags);
5807 btm_cb.pairing_state = new_state;
5811 btu_stop_timer (&btm_cb.pairing_tle);
5813 btm_cb.pairing_flags = 0;
5814 btm_cb.pin_code_len = 0;
5817 l2cu_update_lcb_4_bonding (btm_cb.pairing_bda, FALSE);
5823 memset (btm_cb.pairing_bda, 0xFF, BD_ADDR_LEN);
5829 l2cu_update_lcb_4_bonding (btm_cb.pairing_bda, TRUE);
5831 btm_cb.pairing_tle.param = (TIMER_PARAM_TYPE)btm_sec_pairing_timeout;
5833 btu_start_timer (&btm_cb.pairing_tle, BTU_TTYPE_USER_FUNC, BTM_SEC_TIMEOUT_VALUE);
5866 sprintf(btm_cb.state_temp_buffer,"%hu",state);
5868 return(btm_cb.state_temp_buffer);
5928 GKI_enqueue (&btm_cb.sec_pending_q, p_e);
5947 if (btm_cb.security_mode_changed == FALSE)
5949 btm_cb.security_mode_changed = TRUE;
5961 if (btm_cb.pin_code_len)
5963 BTM_PINCodeReply (p_dev_rec->bd_addr, BTM_SUCCESS, btm_cb.pin_code_len, btm_cb.pin_code, p_dev_rec->trusted_mask);
5968 if (btm_cb.api.p_pin_callback && ((btm_cb.pairing_flags & BTM_PAIR_FLAGS_PIN_REQD) == 0))
5972 btm_cb.pairing_flags |= BTM_PAIR_FLAGS_PIN_REQD;
5973 (btm_cb.api.p_pin_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class, p_dev_rec->sec_bd_name);
6080 p_dev_rec = &btm_cb.sec_dev_rec[start_idx];