Home | History | Annotate | Download | only in hci

Lines Matching refs:nfa_hci_cb

44 tNFA_HCI_CB nfa_hci_cb;
99 if ( (!nfa_hci_cb.ee_disc_cmplt)
100 &&((nfa_hci_cb.hci_state == NFA_HCI_STATE_STARTUP) || (nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE)) )
103 nfa_hci_cb.ee_disc_cmplt = TRUE;
104 nfa_hci_cb.num_ee_dis_req_ntf = 0;
105 nfa_hci_cb.num_hot_plug_evts = 0;
106 nfa_hci_cb.conn_id = 0;
112 if (nfa_hci_cb.ee_disable_disc)
114 nfa_hci_cb.ee_disable_disc = TRUE;
117 nfa_hci_cb.num_nfcee = num_nfcee;
119 if ( (nfa_hci_cb.hci_state == NFA_HCI_STATE_WAIT_NETWK_ENABLE)
120 ||(nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE_NETWK_ENABLE) )
122 if ( (nfa_hci_cb.num_nfcee <= 1)
123 ||(nfa_hci_cb.num_ee_dis_req_ntf == (nfa_hci_cb.num_nfcee - 1))
124 ||(nfa_hci_cb.num_hot_plug_evts == (nfa_hci_cb.num_nfcee - 1)) )
129 nfa_sys_stop_timer (&nfa_hci_cb.timer);
130 if ( (nfa_hci_cb.num_nfcee > 1)
131 &&(nfa_hci_cb.num_ee_dis_req_ntf != (nfa_hci_cb.num_nfcee - 1)) )
134 nfa_sys_start_timer (&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT, p_nfa_hci_cfg->hci_netwk_enable_timeout);
138 nfa_hci_cb.w4_hci_netwk_init = FALSE;
143 else if (nfa_hci_cb.num_nfcee <= 1)
146 nfa_hci_cb.w4_hci_netwk_init = FALSE;
151 nfa_hci_cb.num_ee_dis_req_ntf++;
153 if (nfa_hci_cb.ee_disable_disc)
156 if ( (nfa_hci_cb.hci_state == NFA_HCI_STATE_WAIT_NETWK_ENABLE)
157 ||(nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE_NETWK_ENABLE) )
160 if (nfa_hci_cb.num_ee_dis_req_ntf == (nfa_hci_cb.num_nfcee - 1))
163 nfa_sys_stop_timer (&nfa_hci_cb.timer);
164 nfa_hci_cb.w4_hci_netwk_init = FALSE;
168 else if ( (nfa_hci_cb.hci_state == NFA_HCI_STATE_STARTUP)
169 ||(nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE) )
172 if (nfa_hci_cb.num_ee_dis_req_ntf == (nfa_hci_cb.num_nfcee - 1))
175 nfa_hci_cb.w4_hci_netwk_init = FALSE;
197 memset (&nfa_hci_cb, 0, sizeof (tNFA_HCI_CB));
199 nfa_hci_cb.hci_state = NFA_HCI_STATE_STARTUP;
227 if (strlen (&nfa_hci_cb.cfg.reg_app_names[xx][0]) > NFA_MAX_HCI_APP_NAME_LEN)
231 if ( (nfa_hci_cb.cfg.b_send_conn_evts[xx] != TRUE)
232 &&(nfa_hci_cb.cfg.b_send_conn_evts[xx] != FALSE))
235 if (nfa_hci_cb.cfg.reg_app_names[xx][0] != 0)
240 if ( (nfa_hci_cb.cfg.reg_app_names[yy][0] != 0)
241 &&(!strncmp (&nfa_hci_cb.cfg.reg_app_names[xx][0], &nfa_hci_cb.cfg.reg_app_names[yy][0], strlen (nfa_hci_cb.cfg.reg_app_names[xx]))) )
244 NFA_TRACE_EVENT2 ("nfa_hci_is_valid_cfg (%s) Reusing: %u", &nfa_hci_cb.cfg.reg_app_names[xx][0], xx);
256 if (nfa_hci_cb.cfg.dyn_gates[xx].gate_id != 0)
258 if ( ( (nfa_hci_cb.cfg.dyn_gates[xx].gate_id != NFA_HCI_LOOP_BACK_GATE)
259 &&(nfa_hci_cb.cfg.dyn_gates[xx].gate_id != NFA_HCI_IDENTITY_MANAGEMENT_GATE)
260 &&(nfa_hci_cb.cfg.dyn_gates[xx].gate_id < NFA_HCI_FIRST_HOST_SPECIFIC_GENERIC_GATE))
261 ||(nfa_hci_cb.cfg.dyn_gates[xx].gate_id > NFA_HCI_LAST_PROP_GATE))
267 if ( (nfa_hci_cb.cfg.dyn_gates[yy].gate_id != 0)
268 &&(nfa_hci_cb.cfg.dyn_gates[xx].gate_id == nfa_hci_cb.cfg.dyn_gates[yy].gate_id) )
270 NFA_TRACE_EVENT1 ("nfa_hci_is_valid_cfg Reusing: %u", nfa_hci_cb.cfg.dyn_gates[xx].gate_id);
274 if ((nfa_hci_cb.cfg.dyn_gates[xx].gate_owner & (~NFA_HANDLE_GROUP_HCI)) >= NFA_HCI_MAX_APP_CB)
276 NFA_TRACE_EVENT1 ("nfa_hci_is_valid_cfg Invalid Gate owner: %u", nfa_hci_cb.cfg.dyn_gates[xx].gate_owner);
279 if (nfa_hci_cb.cfg.dyn_gates[xx].gate_id != NFA_HCI_CONNECTIVITY_GATE)
284 if (nfa_hci_cb.cfg.dyn_gates[xx].gate_owner == reg_app[zz])
289 NFA_TRACE_EVENT1 ("nfa_hci_is_valid_cfg Invalid Gate owner: %u", nfa_hci_cb.cfg.dyn_gates[xx].gate_owner);
294 valid_gate[gate_count++] = nfa_hci_cb.cfg.dyn_gates[xx].gate_id;
297 if ((pipe_inx_mask & nfa_hci_cb.cfg.dyn_gates[xx].pipe_inx_mask) != 0)
300 pipe_inx_mask |= nfa_hci_cb.cfg.dyn_gates[xx].pipe_inx_mask;
310 if (nfa_hci_cb.cfg.dyn_pipes[xx].pipe_id < NFA_HCI_FIRST_DYNAMIC_PIPE)
321 if (nfa_hci_cb.cfg.dyn_pipes[xx].pipe_id != 0)
324 if (nfa_hci_cb.cfg.dyn_pipes[xx].pipe_id < NFA_HCI_FIRST_DYNAMIC_PIPE)
328 if ( (nfa_hci_cb.cfg.dyn_pipes[xx].pipe_state != NFA_HCI_PIPE_OPENED)
329 &&(nfa_hci_cb.cfg.dyn_pipes[xx].pipe_state != NFA_HCI_PIPE_CLOSED))
333 if ( (((nfa_hci_cb.cfg.dyn_pipes[xx].local_gate != NFA_HCI_LOOP_BACK_GATE) && (nfa_hci_cb.cfg.dyn_pipes[xx].local_gate != NFA_HCI_IDENTITY_MANAGEMENT_GATE)) && (nfa_hci_cb.cfg.dyn_pipes[xx].local_gate < NFA_HCI_FIRST_HOST_SPECIFIC_GENERIC_GATE))
334 ||(nfa_hci_cb.cfg.dyn_pipes[xx].local_gate > NFA_HCI_LAST_PROP_GATE))
338 if ( (((nfa_hci_cb.cfg.dyn_pipes[xx].dest_gate != NFA_HCI_LOOP_BACK_GATE) && (nfa_hci_cb.cfg.dyn_pipes[xx].dest_gate != NFA_HCI_IDENTITY_MANAGEMENT_GATE)) && (nfa_hci_cb.cfg.dyn_pipes[xx].dest_gate < NFA_HCI_FIRST_HOST_SPECIFIC_GENERIC_GATE))
339 ||(nfa_hci_cb.cfg.dyn_pipes[xx].dest_gate > NFA_HCI_LAST_PROP_GATE))
345 if ( (nfa_hci_cb.cfg.dyn_pipes[yy].pipe_id != 0)
346 &&(nfa_hci_cb.cfg.dyn_pipes[xx].pipe_id == nfa_hci_cb.cfg.dyn_pipes[yy].pipe_id) )
348 NFA_TRACE_EVENT1 ("nfa_hci_is_valid_cfg Reusing: %u", nfa_hci_cb.cfg.dyn_pipes[xx].pipe_id);
355 if (nfa_hci_cb.cfg.dyn_pipes[xx].local_gate == valid_gate[zz])
360 NFA_TRACE_EVENT1 ("nfa_hci_is_valid_cfg Invalid Gate: %u", nfa_hci_cb.cfg.dyn_pipes[xx].local_gate);
367 if ( (nfa_hci_cb.cfg.admin_gate.pipe01_state != NFA_HCI_PIPE_OPENED)
368 &&(nfa_hci_cb.cfg.admin_gate.pipe01_state != NFA_HCI_PIPE_CLOSED))
372 if ( (nfa_hci_cb.cfg.link_mgmt_gate.pipe00_state != NFA_HCI_PIPE_OPENED)
373 &&(nfa_hci_cb.cfg.link_mgmt_gate.pipe00_state != NFA_HCI_PIPE_CLOSED))
376 pipe_inx_mask = nfa_hci_cb.cfg.id_mgmt_gate.pipe_inx_mask;
383 if (nfa_hci_cb.cfg.dyn_pipes[xx].pipe_id < NFA_HCI_FIRST_DYNAMIC_PIPE)
386 if (nfa_hci_cb.cfg.dyn_pipes[xx].local_gate != NFA_HCI_IDENTITY_MANAGEMENT_GATE)
407 nfa_hci_cb.cfg, 0, sizeof (nfa_hci_cb.cfg));
408 memcpy (nfa_hci_cb.cfg.admin_gate.session_id, p_session_id, NFA_HCI_SESSION_ID_LEN);
409 nfa_hci_cb.nv_write_needed = TRUE;
428 nfa_hci_cb.b_low_power_mode = FALSE;
429 if (nfa_hci_cb.hci_state == NFA_HCI_STATE_IDLE)
431 nfa_hci_cb.hci_state = NFA_HCI_STATE_RESTORE;
432 nfa_hci_cb.ee_disc_cmplt = FALSE;
433 nfa_hci_cb.ee_disable_disc = TRUE;
434 if (nfa_hci_cb.num_nfcee > 1)
435 nfa_hci_cb.w4_hci_netwk_init = TRUE;
437 nfa_hci_cb.w4_hci_netwk_init = FALSE;
438 nfa_hci_cb.conn_id = 0;
439 nfa_hci_cb.num_ee_dis_req_ntf = 0;
440 nfa_hci_cb.num_hot_plug_evts = 0;
450 nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
451 nfa_hci_cb.w4_rsp_evt = FALSE;
452 nfa_hci_cb.conn_id = 0;
453 nfa_sys_stop_timer (&nfa_hci_cb.timer);
454 nfa_hci_cb.b_low_power_mode = TRUE;
471 if (nfa_hci_cb.w4_hci_netwk_init)
473 if (nfa_hci_cb.hci_state == NFA_HCI_STATE_STARTUP)
475 nfa_hci_cb.hci_state = NFA_HCI_STATE_WAIT_NETWK_ENABLE;
477 nfa_sys_start_timer (&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT, NFA_EE_DISCV_TIMEOUT_VAL);
479 else if (nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE)
481 nfa_hci_cb.hci_state = NFA_HCI_STATE_RESTORE_NETWK_ENABLE;
483 nfa_sys_start_timer (&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT, p_nfa_hci_cfg->hci_netwk_enable_timeout);
486 else if ( (nfa_hci_cb.num_nfcee > 1)
487 &&(nfa_hci_cb.num_ee_dis_req_ntf != (nfa_hci_cb.num_nfcee - 1)) )
489 if (nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE)
490 nfa_hci_cb.ee_disable_disc = TRUE;
492 nfa_sys_start_timer (&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT, p_nfa_hci_cfg->hci_netwk_enable_timeout);
516 nfa_sys_stop_timer (&nfa_hci_cb.timer);
518 if ( (nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE)
519 ||(nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE_NETWK_ENABLE) )
533 nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
536 nfa_hci_cb.hci_state = NFA_HCI_STATE_DISABLED;
565 if (nfa_hci_cb.nv_read_cmplt && nfa_hci_cb.ee_disc_cmplt && (nfa_hci_cb.conn_id == 0))
582 nfa_sys_start_timer (&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT, NFA_HCI_CON_CREATE_TIMEOUT_VAL);
585 nfa_hci_cb.hci_state = NFA_HCI_STATE_DISABLED;
614 nfa_nv_co_read ((UINT8 *)&nfa_hci_cb.cfg, sizeof (nfa_hci_cb.cfg),DH_NV_BLOCK);
615 nfa_sys_start_timer (&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT, NFA_HCI_NV_READ_TIMEOUT_VAL);
631 nfa_sys_stop_timer (&nfa_hci_cb.timer);
633 if (nfa_hci_cb.conn_id)
639 NFC_ConnClose (nfa_hci_cb.conn_id);
642 nfa_hci_cb.conn_id = 0;
645 nfa_hci_cb.hci_state = NFA_HCI_STATE_DISABLED;
672 nfa_hci_cb.conn_id = conn_id;
673 nfa_hci_cb.buff_size = p_data->conn_create.buff_size;
675 if (nfa_hci_cb.hci_state == NFA_HCI_STATE_STARTUP)
677 nfa_hci_cb.w4_hci_netwk_init = TRUE;
681 if (nfa_hci_cb.cfg.admin_gate.pipe01_state == NFA_HCI_PIPE_CLOSED)
694 nfa_hci_cb.conn_id = 0;
695 nfa_hci_cb.hci_state = NFA_HCI_STATE_DISABLED;
703 if ( (nfa_hci_cb.hci_state == NFA_HCI_STATE_WAIT_NETWK_ENABLE)
704 ||(nfa_hci_cb.hci_state == NFA_HCI_STATE_RESTORE_NETWK_ENABLE) )
707 nfa_sys_stop_timer (&nfa_hci_cb.timer);
708 if (nfa_hci_cb.w4_hci_netwk_init)
709 nfa_sys_start_timer (&nfa_hci_cb.timer, NFA_HCI_RSP_TIMEOUT_EVT, p_nfa_hci_cfg->hci_netwk_enable_timeout);
716 DispHcp (p, pkt_len, TRUE, (BOOLEAN) !nfa_hci_cb.assembling);
724 if (nfa_hci_cb.assembling == FALSE)
727 nfa_hci_cb.type = ((*p) >> 0x06) & 0x03;
728 nfa_hci_cb.inst = (*p++ & 0x3F);
731 nfa_hci_cb.assembly_failed = FALSE;
732 nfa_hci_cb.msg_len = 0;
736 nfa_hci_cb.assembling = TRUE;
742 if ((pipe >= NFA_HCI_FIRST_DYNAMIC_PIPE) && (nfa_hci_cb.type == NFA_HCI_EVENT_TYPE))
746 p = nfa_hci_cb.p_msg_data;
752 if (nfa_hci_cb.assembly_failed)
766 nfa_hci_cb.assembling = FALSE;
767 p = nfa_hci_cb.p_msg_data;
768 pkt_len = nfa_hci_cb.msg_len;
774 (UINT8)pipe, nfa_hciu_get_type_inst_names (pipe, nfa_hci_cb.type, nfa_hci_cb.inst, buff),
775 (UINT8)chaining_bit, (UINT8)nfa_hci_cb.assembling, p_pkt->len);
778 pipe, nfa_hci_cb.type, nfa_hci_cb.inst, chaining_bit, nfa_hci_cb.assembling, p_pkt->len);
783 if (nfa_hci_cb.assembling)
792 if ( (nfa_hci_cb.hci_state == NFA_HCI_STATE_WAIT_RSP)
793 &&((nfa_hci_cb.type == NFA_HCI_RESPONSE_TYPE) || (nfa_hci_cb.w4_rsp_evt && (nfa_hci_cb.type == NFA_HCI_EVENT_TYPE))) )
795 nfa_sys_stop_timer (&nfa_hci_cb.timer);
796 nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
803 if (nfa_hci_cb.type == NFA_HCI_COMMAND_TYPE)
807 else if (nfa_hci_cb.type == NFA_HCI_RESPONSE_TYPE)
811 else if (nfa_hci_cb.type == NFA_HCI_EVENT_TYPE)
819 if (nfa_hci_cb.type == NFA_HCI_COMMAND_TYPE)
829 if ((nfa_hci_cb.type == NFA_HCI_RESPONSE_TYPE) || (nfa_hci_cb.w4_rsp_evt && (nfa_hci_cb.type == NFA_HCI_EVENT_TYPE)))
831 nfa_hci_cb.w4_rsp_evt = FALSE;
859 nfa_sys_stop_timer (&nfa_hci_cb.timer);
860 nfa_hci_cb.nv_read_cmplt = TRUE;
863 ||(!(memcmp (nfa_hci_cb.cfg.admin_gate.session_id, default_session, NFA_HCI_SESSION_ID_LEN)))
864 ||(!(memcmp (nfa_hci_cb.cfg.admin_gate.session_id, reset_session, NFA_HCI_SESSION_ID_LEN))) )
866 nfa_hci_cb.b_hci_netwk_reset = TRUE;
868 memcpy (&session_id[(NFA_HCI_SESSION_ID_LEN / 2)], nfa_hci_cb.cfg.admin_gate.session_id, (NFA_HCI_SESSION_ID_LEN / 2));
892 NFA_TRACE_EVENT2 ("nfa_hci_rsp_timeout () State: %u Cmd: %u", nfa_hci_cb.hci_state, nfa_hci_cb.cmd_sent);
896 switch (nfa_hci_cb.hci_state)
907 if (nfa_hci_cb.w4_hci_netwk_init)
910 nfa_hci_cb.w4_hci_netwk_init = FALSE;
921 if (nfa_hci_cb.cmd_sent == NFA_HCI_ADM_DELETE_PIPE)
934 if (nfa_hci_cb.cmd_sent == NFA_HCI_ADM_DELETE_PIPE)
946 nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
948 if (nfa_hci_cb.w4_rsp_evt)
950 nfa_hci_cb.w4_rsp_evt = FALSE;
952 evt_data.rcvd_evt.pipe = nfa_hci_cb.pipe_in_use;
956 nfa_hci_cb.rsp_buf_size = 0;
957 nfa_hci_cb.p_rsp_buf = NULL;
963 switch (nfa_hci_cb.cmd_sent)
970 delete_pipe = nfa_hci_cb.pipe_in_use;
971 evt_data.registry.pipe = nfa_hci_cb.pipe_in_use;
973 evt_data.registry.index = nfa_hci_cb.param_in_use;
982 delete_pipe = nfa_hci_cb.pipe_in_use;
983 evt_data.registry.pipe = nfa_hci_cb.pipe_in_use;
985 evt_data.registry.index = nfa_hci_cb.param_in_use;
994 delete_pipe = nfa_hci_cb.pipe_in_use;
995 evt_data.opened.pipe = nfa_hci_cb.pipe_in_use;
1004 delete_pipe = nfa_hci_cb.pipe_in_use;
1005 evt_data.closed.pipe = nfa_hci_cb.pipe_in_use;
1010 evt_data.created.pipe = nfa_hci_cb.pipe_in_use;
1011 evt_data.created.source_gate = nfa_hci_cb.local_gate_in_use;
1012 evt_data.created.dest_host = nfa_hci_cb.remote_host_in_use;
1013 evt_data.created.dest_gate = nfa_hci_cb.remote_gate_in_use;
1022 if (nfa_hci_cb.pipe_in_use <= NFA_HCI_LAST_DYNAMIC_PIPE)
1023 nfa_hciu_release_pipe (nfa_hci_cb.pipe_in_use);
1024 evt_data.deleted.pipe = nfa_hci_cb.pipe_in_use;
1033 delete_pipe = nfa_hci_cb.pipe_in_use;
1048 nfa_hciu_send_to_app (evt, &evt_data, nfa_hci_cb.app_in_use);
1063 &&(nfa_hci_cb.type == NFA_HCI_EVENT_TYPE) )
1065 if ( (nfa_hci_cb.rsp_buf_size)
1066 &&(nfa_hci_cb.p_rsp_buf != NULL) )
1068 nfa_hci_cb.p_msg_data = nfa_hci_cb.p_rsp_buf;
1069 nfa_hci_cb.max_msg_len = nfa_hci_cb.rsp_buf_size;
1073 nfa_hci_cb.p_msg_data = nfa_hci_cb.msg_data;
1074 nfa_hci_cb.max_msg_len = NFA_MAX_HCI_EVENT_LEN;
1088 if ((nfa_hci_cb.msg_len + data_len) > nfa_hci_cb.max_msg_len)
1091 memcpy (&nfa_hci_cb.p_msg_data[nfa_hci_cb.msg_len], p_data, (nfa_hci_cb.max_msg_len - nfa_hci_cb.msg_len));
1092 nfa_hci_cb.msg_len = nfa_hci_cb.max_msg_len;
1094 nfa_hci_cb.assembly_failed = TRUE;
1095 NFA_TRACE_ERROR1 ("nfa_hci_assemble_msg (): Insufficient buffer to Reassemble HCP packet! Dropping :%u bytes", ((nfa_hci_cb.msg_len + data_len) - nfa_hci_cb.max_msg_len));
1099 memcpy (&nfa_hci_cb.p_msg_data[nfa_hci_cb.msg_len], p_data, data_len);
1100 nfa_hci_cb.msg_len += data_len;
1119 nfa_hciu_get_state_name (nfa_hci_cb.hci_state), nfa_hci_cb.hci_state,
1122 NFA_TRACE_EVENT2 ("nfa_hci_evt_hdlr state: %d event: 0x%04x", nfa_hci_cb.hci_state, p_evt_data->hdr.event);
1128 GKI_enqueue (&nfa_hci_cb.hci_api_q, p_msg);
1169 if ((nfa_hci_cb.hci_state == NFA_HCI_STATE_IDLE) && (nfa_hci_cb.nv_write_needed))
1171 nfa_hci_cb.nv_write_needed = FALSE;
1172 nfa_nv_co_write ((UINT8 *)&nfa_hci_cb.cfg, sizeof (nfa_hci_cb.cfg),DH_NV_BLOCK);