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