1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu * Copyright (C) 2003-2014 Broadcom Corporation 4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * you may not use this file except in compliance with the License. 7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * You may obtain a copy of the License at: 8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * See the License for the specific language governing permissions and 15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * limitations under the License. 16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 195c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * This is the private interface file for the NFA DTA 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_DTA_INT_H 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_INT_H 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_dta_api.h" 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_sys.h" 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_sys_int.h" 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfc_api.h" 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "rw_api.h" 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "ce_api.h" 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#if (NFA_DTA_INCLUDED == TRUE) 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** DTA definitions 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_PATTERN_NUMBER_INVALID 0xFFFF 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 427c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#define NFA_DTA_PATTERN_NUMBER_LLCP_CONNECT_BY_SAP 0x1200 437c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#define NFA_DTA_PATTERN_NUMBER_LLCP_CONNECT_BY_SN 0x1240 447c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#define NFA_DTA_PATTERN_NUMBER_LLCP_CONNECT_BY_SNL 0x1280 457c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu 467c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#define NFA_DTA_PATTERN_NUMBER_SNEP_SERVER_ONLY 0x1300 477c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#define NFA_DTA_PATTERN_NUMBER_SNEP_DEFAULT_PUT_SHORT_NDEF 0x1301 487c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#define NFA_DTA_PATTERN_NUMBER_SNEP_DEFAULT_PUT_LONG_NDEF 0x1302 497c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#define NFA_DTA_PATTERN_NUMBER_SNEP_EXTENDED_GET 0x1303 507c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_DISCOVER_PARAMS_MAX 6 52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NDEF_WKT_TEXT_HDR_LEN 7 /* Header length for long NDEF text message */ 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_T3T_WRITE_NDEF_SIZE 192 /* Size of NDEF message for T3T write-tests ([DTA] $5.5.6) */ 55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_T3T_LISTEN_SYSTEMCODE 0xBABE /* System code to use for T3T Listen mode tests */ 56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_PROTOCOL_RANK_INVALID 0xFF /* Maximum protocol preference rank */ 58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_SCRATCH_BUF_SIZE T3T_MSG_BLOCKSIZE 60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_DTA_DEFAULT_CO_OUT_DSAP 627c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#define NFA_DTA_DEFAULT_CO_OUT_DSAP 0x12 /* Default SAP[LT,CO-OUT-DEST] if SDP was not performed to get SAP from the LT */ 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project* DTA state machine definitions 67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct { 70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN tp_continue; /* NFA_DTA_CFG_TP_CONTINUE */ 71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_FL_POLL_LISTEN poll_listen; /* NFA_DTA_CFG_POLL_LISTEN */ 72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN t4at_nfcdep_priority; /* NFA_DTA_CFG_T4AT_NFCDEP_PRIORITY */ 73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN reactivation; /* NFA_DTA_CFG_REACTIVATION */ 74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 total_duration; /* NFA_DTA_CFG_TOTAL_DURATION */ 75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_EMVCO_PCD_MODE emvco_pcd_mode; /* NFA_DTA_CFG_EMVCO_PCD */ 76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_CONFIG; 77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project* DTA state machine definitions 80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* DTA events */ 82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* device manager local device API events */ 85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_API_ENABLE_EVT = NFA_SYS_EVT_START (NFA_ID_DTA), 86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_API_DISABLE_EVT, 87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_API_CONFIG_EVT, 88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_API_START_EVT, 89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_API_STOP_EVT, 90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_ACTIVATE_EVT, 91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DEACTIVATE_EVT, 92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DATA_CBACK_EVT, 93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 94e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_MAX_EVT 95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for NFA_DTA_API_ENABLE_EVT */ 99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BT_HDR hdr; 102e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN auto_start; 103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_CBACK *p_cback; 104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_API_ENABLE; 105e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for NFA_DTA_API_START_EVT */ 107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BT_HDR hdr; 1107c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu UINT16 pattern_number; 111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 tlv_len; 112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 *p_tlv_params; 113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_API_START; 114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for NFA_DTA_API_CONFIG */ 116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BT_HDR hdr; 119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_CFG_ITEM item; 120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_CFG cfg_data; 121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_API_CONFIG; 122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for NFA_DTA_DATA_CBACK_EVT */ 124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 event; 127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tRW_DATA data; 128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_RW_DATA; 129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 event; 133e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tCE_DATA data; 134e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_CE_DATA; 135e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 136e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 137e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_CONN_EVT event; 139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_CONN data; 140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_NFCDEP_DATA; 141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_LLCP_CONNECT_CO_ECHO_OUT, 146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_LLCP_DISCONNECT_CO_ECHO_OUT 147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_DTA_LLCP_EVT; 149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 150e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 151e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_RW_DATA, 153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_CE_DATA, 154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_NFCDEP_DATA, 155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_LLCP_DATA 156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 158e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_DTA_DATA_TYPE; 159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 161e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BT_HDR hdr; 163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_DATA_TYPE type; 164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project union 165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project { 166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_RW_DATA rw; 167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_CE_DATA ce; 168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_NFCDEP_DATA nfcdep; 169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_LLCP_EVT llcp_evt; 170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project } data; 171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_DATA_CBACK; 172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* All API message type */ 174e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef union 175e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BT_HDR hdr; 177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_API_ENABLE enable; 178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_API_CONFIG cfg; 179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_API_START start; 180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_DATA_CBACK data_cback; 181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}tNFA_DTA_MSG; 182e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 185e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* DTA states */ 186e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_ST_IDLE, 189e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_ST_DISCOVER, /* Polling/Listening */ 190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_ST_ACTIVATED /* Activated, listen mode */ 191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_DTA_STATE; 193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 194e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* DTA Substates (while in ACTIVATED state) - substate enumerations are found in protocol-specific files (nfa_dta_XXX.c) */ 195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_SST_IDLE 0 196e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_DTA_SUBSTATE; 197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* DTA discovery states */ 199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DISC_STATE_IDLE, 202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DISC_STATE_DISCOVERY, 203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DISC_STATE_POLL_ACTIVE, 204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DISC_STATE_W4_ALL_DISCOVERIES, 205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DISC_STATE_W4_HOST_SELECT, 206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DISC_STATE_LISTEN_ACTIVE, 207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DISC_STATE_LISTEN_SLEEP, 208e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_DISC_STATE_MAX 209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project* DTA control block definitions 213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 214e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NDEF buffer definitions */ 216e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum { 217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_BUF_READ, /* Buffer for RW Read requests */ 218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_BUF_WRITE, /* Buffer for RW Write requests */ 219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_BUF_MAX 220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 221e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct { 223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 *p_data; 224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT32 max_size; 225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT32 cur_size; 226e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT32 offset; /* current read/write offset */ 227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_BUF_CB; 228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* T4T listen mode test application */ 231e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum { 232e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_T4T_CE_APP_NONE, /* Not selected */ 233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_T4T_CE_APP_LOOPBACK, /* loopback test applicaiton */ 234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_DTA_T4T_CE_APP_PROP /* propretary test application */ 235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 236e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 237e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* DTA test step command */ 238e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef tNFC_STATUS (*tNFA_DTA_CMD_FCN) (void *); 239e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 240e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* dta control block flags */ 241e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_FL_ENABLED 0x00000001 /* DTA is enabled */ 242e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_FL_AUTOSTART 0x00000002 /* Automatically start discovery when NFC is enabled */ 243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_FL_STOPPING 0x00000004 /* DTA is stopping (NFA_DtaStop called) */ 244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_FL_DISABLING 0x00000008 /* DTA is being disabled (NFA_DtaDisable called) */ 245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_FL_T4T_DESELECT_DEACT 0x00000010 /* T4T/NFCDEP is deactivating to IDLE (need to DESELECT first) */ 246e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 247e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* DTA control block */ 248e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct { 249e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT32 dta_flags; /* dta_flags must be first item in structure (statically intialized to 0 on startup) */ 250e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 251e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Configuration */ 252e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_CONFIG cfg; 253e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 254e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* DTA State Machine */ 255e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_STATE state; 256e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_SUBSTATE substate; /* Current protocol-specific sub-state */ 257e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_CBACK *p_cback; /* Applicatation for DTA event notification */ 258e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* DTA test parameters */ 2607c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu UINT16 pattern_number; 2617c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu UINT16 pattern_number_old; 262e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 263e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Discovery Parameters */ 264e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 disc_state; 265e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 disc_params_num; 266e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_DISCOVER_PARAMS disc_params[NFA_DTA_DISCOVER_PARAMS_MAX]; 267e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 268e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Activation parameters */ 269e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_ACTIVATE_DEVT activate_params; 270e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 cur_protocol_rank; /* perference ranking of currently discovered protocol */ 271e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 272e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tRW_CBACK *p_rw_cback; 273e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tCE_CBACK *p_ce_cback; 274e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 275e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project TIMER_LIST_ENT protocol_timer; /* timer for the activated protocol if needed */ 276e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 277e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 t4t_ce_app; /* T4T listen mode test application */ 278e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tCE_T4T_AID_HANDLE t4t_dta_aid_hdl; /* T4T registration handle for proprietary dta aid */ 279e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tCE_T4T_AID_HANDLE t4t_prop_aid_hdl; /* T4T registration handle for proprietary aid */ 280e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 nfc_dep_wt; 281e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 282e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN llcp_cl_more_to_read; /* TRUE if there is more to read in llcp cl link*/ 283e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN llcp_co_more_to_read; /* TRUE if there is more to read in llcp recieve window*/ 284e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN llcp_is_initiator; /* TURE if IUT is LLCP initiator */ 285e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 llcp_local_link_miu; /* link MIU of IUT */ 286e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 llcp_remote_link_miu; /* link MIU of LT */ 287e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 2887c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu UINT8 llcp_pattern_num_sap; /* SAP of pattern number exchange */ 2897c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu 290e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 llcp_cl_in_local_sap; /* SAP of IUT-CL-IN-DEST */ 291e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 llcp_cl_out_local_sap; /* SAP of IUT-CL-OUT-SRC */ 292e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 llcp_cl_out_remote_sap; /* SAP of LT-CL-OUT-DEST */ 293e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 294e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 llcp_co_in_local_sap; /* SAP of IUT-CO-IN-DEST */ 295e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 llcp_co_in_remote_sap; /* SAP of LT-CO-IN-SRC */ 296e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 llcp_co_out_local_sap; /* SAP of IUT-CO-OUT-SRC */ 297e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 llcp_co_out_remote_sap; /* SAP of LT-CO-OUT-DEST */ 298e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 299e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 llcp_co_out_remote_miu; /* MIU of LT-CO-OUT-DEST */ 300e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 llcp_co_out_remote_rw; /* RW of LT-CO-OUT-DEST */ 301e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 302e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_LLCP_FLAGS_CO_OUT_CONNECTING 0x01 /* establishing outbound on connection-oriented */ 303e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_LLCP_FLAGS_CO_OUT_CONNECTED 0x02 /* established outbound on connection-oriented */ 304e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 305e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 llcp_flags; /* internal flags for LLCP echo test */ 3067c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu UINT8 llcp_sdp_tid_cl; /* SDP transaction ID for outbound connectionless */ 3077c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu UINT8 llcp_sdp_tid_co; /* SDP transaction ID for outbound connection-oriented */ 308e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 309e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project TIMER_LIST_ENT llcp_cl_echo_timer; /* timer for the connectionless echo test application */ 310e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project TIMER_LIST_ENT llcp_co_echo_timer; /* timer for the connection-oriented echo test application */ 311e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BUFFER_Q llcp_cl_buffer; /* buffer for the connectionless echo test application */ 312e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BUFFER_Q llcp_co_buffer; /* buffer for the connection-oriented echo test application*/ 313e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 314e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_HANDLE snep_server_handle; 315e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_HANDLE snep_server_conn_handle; 316e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_HANDLE snep_client_handle; 317e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 318e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 *p_snep_short_ndef; 319e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT32 snep_short_ndef_size; 320e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 *p_snep_long_ndef; 321e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT32 snep_long_ndef_size; 322e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 323e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* DTA buffer for NDEF read/write */ 324e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_BUF_CB buf_cb[NFA_DTA_BUF_MAX]; 325e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT32 ndef_size; /* Size of NDEF message from NDEF detection */ 326e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 327e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Scratch buffer for miscelaneous use */ 328e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 scratch_buf[NFA_DTA_SCRATCH_BUF_SIZE]; 329e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 330e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* DTA Test command table */ 331e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_DTA_CMD_FCN *p_cur_cmd_tbl; /* Current table of commands for current test */ 332e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 cur_cmd_idx; 333e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_DTA_CB; 334e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern tNFA_DTA_CB nfa_dta_cb; 335e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 336e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA_SYS info for DTA */ 337e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern const tNFA_SYS_REG nfa_dta_sys_reg; 338e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 339e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* DTA startup setconfig parameters */ 340e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern UINT8 *p_nfa_dta_start_up_cfg; 341e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern UINT8 nfa_dta_start_up_cfg_len; 342e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 343e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 344e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project* DTA internal funciton protoytpes 345e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 346e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Internal function prototypes */ 347e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_deactivate (UINT8 deactivate_type); 348e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_shutdown (void); 349e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_discover_start (void); 350e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 351e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* nfa_sys handler for DTA */ 352e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBOOLEAN nfa_dta_evt_hdlr (BT_HDR *p_msg); 353e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_sys_disable (void); 354e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 355e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* State machine action functions */ 356e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBOOLEAN nfa_dta_enable (tNFA_DTA_MSG *p_data); 357e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBOOLEAN nfa_dta_disable (tNFA_DTA_MSG *p_data); 358e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBOOLEAN nfa_dta_config (tNFA_DTA_MSG *p_data); 359e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBOOLEAN nfa_dta_start (tNFA_DTA_MSG *p_data); 360e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBOOLEAN nfa_dta_handle_deact (tNFA_DTA_MSG *p_data); 361e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBOOLEAN nfa_dta_stop (tNFA_DTA_MSG *p_data); 362e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBOOLEAN nfa_dta_run_test (tNFA_DTA_MSG *p_data); 363e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBOOLEAN nfa_dta_proc_data (tNFA_DTA_MSG *p_msg_data); 364e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 365e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Utility functions */ 366e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_test_set_state (tNFA_DTA_STATE state); 367e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_test_set_substate (tNFA_DTA_SUBSTATE substate); 368e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_free_ndef_buf (UINT8 ndef_idx); 369e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectUINT8 *nfa_dta_realloc_buf (UINT8 ndef_idx, UINT32 size); 370e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t3t_nfcid_rand (UINT8 nfcid2[NCI_RF_F_UID_LEN]); 371e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 372e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Test function entry points (in nfa_dta_XXX.c) */ 373e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_nfcdep_poll_test_start (void); 374e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_nfcdep_proc_data (tNFC_CONN_EVT event, tNFC_CONN *p_data); 375e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t1t_poll_test_start (void); 376e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t2t_poll_test_start (void); 377e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t3t_poll_test_start (void); 378e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t4t_poll_test_start (void); 379e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 380e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_nfcdep_listen_test_start (void); 381e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t3t_listen_test_start (void); 382e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t4t_listen_test_start (void); 383e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 384e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t1t_rw_cback (UINT8 event, tRW_DATA *p_data); 385e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t2t_rw_cback (UINT8 event, tRW_DATA *p_data); 386e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t3t_rw_cback (UINT8 event, tRW_DATA *p_data); 387e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t4t_rw_cback (UINT8 event, tRW_DATA *p_data); 388e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 389e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t3t_ce_cback (UINT8 event, tCE_DATA *p_data); 390e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t4t_ce_cback (UINT8 event, tCE_DATA *p_data); 391e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 392e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_ce_cback (UINT8 event, tCE_DATA *p_ce_data); 393e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 394e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t4t_register_apps (void); 395e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_t4t_deregister_apps (void); 396e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 3977c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chuvoid nfa_dta_llcp_init (void); 3987c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chuvoid nfa_dta_llcp_set_gen_bytes (void); 3997c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chuvoid nfa_dta_llcp_clear_gen_bytes (void); 4007c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chuvoid nfa_dta_llcp_register_pattern_number_service (void); 4017c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chuvoid nfa_dta_llcp_deregister_pattern_number_service (void); 402e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_llcp_register_echo (void); 403e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_llcp_deregister_echo (void); 404e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_llcp_activate_link (void); 405e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_llcp_connect_co_echo_out (void); 406e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_llcp_disconnect_co_echo_out (void); 407e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 4087c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chuvoid nfa_dta_snep_init (void); 409e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_snep_register (void); 410e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_snep_deregister (void); 411e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 412e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_emvco_pcd_config_nfcc (BOOLEAN enable); 413e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_emvco_pcd_start (void); 414e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfa_dta_emvco_pcd_cback (UINT8 event, tRW_DATA *p_data); 415e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 416e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern UINT8 *p_nfa_dta_brcm_start_up_cfg; 417e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern UINT8 nfa_dta_brcm_start_up_cfg_len; 418e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern UINT8 *p_nfa_dta_start_up_vsc_cfg; 419e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 420e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* (NFA_DTA_INCLUDED == TRUE) */ 421e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFA_DTA_INT_H */ 422e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 423