1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
3e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Copyright (C) 1999-2012 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
19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_TARGET_H
20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_TARGET_H
21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "data_types.h"
23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef BUILDCFG
25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "buildcfg.h"
26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Include common GKI definitions used by this platform */
29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "gki_target.h"
30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "bt_types.h"   /* This must be defined AFTER buildcfg.h */
32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "dyn_mem.h"    /* defines static and/or dynamic memory for components */
33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LMP_TEST
34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "bt_trace.h"
35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* API macros for DLL (needed to export API functions from DLLs) */
39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_API         EXPORT_API
40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_API        EXPORT_API
41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** GKI Mail Box and Timer
45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Mailbox event mask for NFC stack */
49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_MBOX_EVT_MASK
50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_MBOX_EVT_MASK           (TASK_MBOX_0_EVT_MASK)
51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Mailbox ID for NFC stack */
54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_MBOX_ID
55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_MBOX_ID                 (TASK_MBOX_0)
56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Mailbox event mask for NFA */
59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_MBOX_EVT_MASK
60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_MBOX_EVT_MASK           (TASK_MBOX_2_EVT_MASK)
61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Mailbox ID for NFA */
64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_MBOX_ID
65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_MBOX_ID                 (TASK_MBOX_2)
66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* GKI timer id used for protocol timer in NFC stack */
69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_TIMER_ID
70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_TIMER_ID                (TIMER_0)
71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* GKI timer event mask used for protocol timer in NFC stack */
74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_TIMER_EVT_MASK
75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_TIMER_EVT_MASK          (TIMER_0_EVT_MASK)
76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* GKI timer id used for quick timer in NFC stack */
79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_QUICK_TIMER_ID
80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_QUICK_TIMER_ID          (TIMER_1)
81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* GKI timer event mask used for quick timer in NFC stack */
84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_QUICK_TIMER_EVT_MASK
85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_QUICK_TIMER_EVT_MASK    (TIMER_1_EVT_MASK)
86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* GKI timer id used for protocol timer in NFA */
89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_TIMER_ID
90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_TIMER_ID                (TIMER_2)
91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* GKI timer event mask used for protocol timer in NFA */
94e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_TIMER_EVT_MASK
95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_TIMER_EVT_MASK          (TIMER_2_EVT_MASK)
96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** GKI Buffer Pools
101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
102e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NCI command/notification/data */
105e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_NCI_POOL_ID
106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_NCI_POOL_ID             GKI_POOL_ID_2
107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_NCI_POOL_BUF_SIZE
110e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_NCI_POOL_BUF_SIZE       GKI_BUF2_SIZE
111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Reader/Write commands (NCI data payload) */
114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_RW_POOL_ID
115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_RW_POOL_ID             GKI_POOL_ID_2
116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_RW_POOL_BUF_SIZE
119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_RW_POOL_BUF_SIZE       GKI_BUF2_SIZE
120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Card Emulation responses (NCI data payload) */
123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_CE_POOL_ID
124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_CE_POOL_ID             GKI_POOL_ID_2
125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_CE_POOL_BUF_SIZE
128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_CE_POOL_BUF_SIZE       GKI_BUF2_SIZE
129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
1325c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/* NCI msg pool for HAL (for shared NFC/HAL GKI)*/
1335c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef NFC_HAL_NCI_POOL_ID
1345c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFC_HAL_NCI_POOL_ID         NFC_NCI_POOL_ID
1355c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif
1365c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
1375c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef NFC_HAL_NCI_POOL_BUF_SIZE
1385c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFC_HAL_NCI_POOL_BUF_SIZE   NFC_NCI_POOL_BUF_SIZE
1395c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif
1405c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
1415c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NCI Transport definitions
145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* offset of the first NCI packet in buffer for outgoing */
148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NCI_MSG_OFFSET_SIZE
149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_MSG_OFFSET_SIZE             1
150e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
151e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Restore NFCC baud rate to default on shutdown if NFC_UpdateBaudRate was called */
153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_RESTORE_BAUD_ON_SHUTDOWN
154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_RESTORE_BAUD_ON_SHUTDOWN    TRUE
155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
158e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NCI
160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
161e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_VERSION_0_F             0x0F
164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_VERSION_1_0             0x10
165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NCI_VERSION
167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_VERSION                 NCI_VERSION_1_0
168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* TRUE I2C patch is needed */
171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_I2C_PATCH_INCLUDED
172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_I2C_PATCH_INCLUDED          TRUE     /* NFC-Android uses this!!! */
173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
174e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
175e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFC
178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_INCLUDED
181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_INCLUDED            TRUE
182e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Define to TRUE to include Broadcom Vendor Specific implementation */
185e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_BRCM_VS_INCLUDED
186e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_BRCM_VS_INCLUDED    TRUE
187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
189e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Define to TRUE if compling for NFC Reader/Writer Only mode */
190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_RW_ONLY
191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_RW_ONLY         FALSE
192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
194e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Define to TRUE to use dynamic memory allocation.
195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * The default is FALSE - to use static memory allocations.
196e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*/
197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_DYNAMIC_MEMORY
198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_DYNAMIC_MEMORY              FALSE
199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Timeout for receiving response to NCI command */
202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_CMD_CMPL_TIMEOUT
203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_CMD_CMPL_TIMEOUT        2
204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Timeout for waiting on data credit/NFC-DEP */
207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_DEACTIVATE_TIMEOUT
208e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_DEACTIVATE_TIMEOUT      2
209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* the maximum number of Vendor Specific callback functions allowed to be registered. 1-14 */
212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_NUM_VS_CBACKS
213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_NUM_VS_CBACKS       3
214e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
216e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* the maximum number of NCI connections allowed. 1-14 */
217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NCI_MAX_CONN_CBS
218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_MAX_CONN_CBS        4
219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
221e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Maximum number of NCI commands that the NFCC accepts without needing to wait for response */
222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NCI_MAX_CMD_WINDOW
223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NCI_MAX_CMD_WINDOW      1
224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
226e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Define to TRUE to include the NFCEE related functionalities */
227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_NFCEE_INCLUDED
228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_NFCEE_INCLUDED          TRUE
229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
231e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* the maximum number of NFCEE interface supported */
232e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_MAX_EE_INTERFACE
233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_MAX_EE_INTERFACE        3
234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
236e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* the maximum number of NFCEE information supported. */
237e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_MAX_EE_INFO
238e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_MAX_EE_INFO        8
239e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
240e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
241e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* the maximum number of NFCEE TLVs supported */
242e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_MAX_EE_TLVS
243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_MAX_EE_TLVS        1
244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
246e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* the maximum size of NFCEE TLV list supported */
247e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_MAX_EE_TLV_SIZE
248e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_MAX_EE_TLV_SIZE        150
249e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
250e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
251df5080d7feca9827fd0306471c54f52ecf185c22Evan Chu/* Maximum time to discover NFCEE */
252df5080d7feca9827fd0306471c54f52ecf185c22Evan Chu#ifndef NFA_EE_DISCV_TIMEOUT_VAL
253df5080d7feca9827fd0306471c54f52ecf185c22Evan Chu#define NFA_EE_DISCV_TIMEOUT_VAL    2000
254df5080d7feca9827fd0306471c54f52ecf185c22Evan Chu#endif
255df5080d7feca9827fd0306471c54f52ecf185c22Evan Chu
256e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Number of times reader/writer should attempt to resend a command on failure */
257e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef RW_MAX_RETRIES
258e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define RW_MAX_RETRIES              5
259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
260e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
261e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* RW NDEF Support */
262e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef RW_NDEF_INCLUDED
263e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define RW_NDEF_INCLUDED            TRUE
264e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
265e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
266e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* RW Type 1 Tag timeout for each API call, in ms */
267e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef RW_T1T_TOUT_RESP
268e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define RW_T1T_TOUT_RESP            100
269e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
270e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
271e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* CE Type 2 Tag timeout for controller command, in ms */
272e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_T2T_TOUT_RESP
273e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_T2T_TOUT_RESP            1000
274e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
275e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
276e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* RW Type 2 Tag timeout for each API call, in ms */
277e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef RW_T2T_TOUT_RESP
278e75b11bfe42c06a4ae95e947b04fdf09f1869fbdEvan Chu#define RW_T2T_TOUT_RESP            150 /* Android requires 150 instead of 100 for presence-check*/
279e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
280e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
281e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* RW Type 2 Tag timeout for each API call, in ms */
282e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef RW_T2T_SEC_SEL_TOUT_RESP
283e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define RW_T2T_SEC_SEL_TOUT_RESP    10
284e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
285e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
286e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* RW Type 3 Tag timeout for each API call, in ms */
287e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef RW_T3T_TOUT_RESP
288e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define RW_T3T_TOUT_RESP            100         /* NFC-Android will use 100 instead of 75 for T3t presence-check */
289e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
290e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
291e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* CE Type 3 Tag maximum response timeout index (for check and update, used in SENSF_RES) */
292e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_T3T_MRTI_C
293e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_T3T_MRTI_C               0xFF
294e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
295e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_T3T_MRTI_U
296e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_T3T_MRTI_U               0xFF
297e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
298e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
299e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Default maxblocks for CE_T3T UPDATE/CHECK operations */
300e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_T3T_DEFAULT_UPDATE_MAXBLOCKS
301e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_T3T_DEFAULT_UPDATE_MAXBLOCKS 3
302e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
303e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
304e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_T3T_DEFAULT_CHECK_MAXBLOCKS
305e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_T3T_DEFAULT_CHECK_MAXBLOCKS  3
306e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
307e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
308e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* CE Type 4 Tag, Frame Waiting time Integer */
309e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_T4T_ISO_DEP_FWI
310e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_T4T_ISO_DEP_FWI          7
311e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
312e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
313e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* RW Type 4 Tag timeout for each API call, in ms */
314e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef RW_T4T_TOUT_RESP
315e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define RW_T4T_TOUT_RESP            1000
316e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
317e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
318e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* CE Type 4 Tag timeout for update file, in ms */
319e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_T4T_TOUT_UPDATE
320e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_T4T_TOUT_UPDATE          1000
321e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
322e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
323e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* CE Type 4 Tag, mandatory NDEF File ID */
324e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_T4T_MANDATORY_NDEF_FILE_ID
325e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_T4T_MANDATORY_NDEF_FILE_ID    0x1000
326e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
327e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
328e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* CE Type 4 Tag, max number of AID supported */
329e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_T4T_MAX_REG_AID
330e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_T4T_MAX_REG_AID         4
331e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
332e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
333e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Sub carrier */
334e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef RW_I93_FLAG_SUB_CARRIER
335e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define RW_I93_FLAG_SUB_CARRIER     I93_FLAG_SUB_CARRIER_SINGLE
336e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
337e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
338e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data rate for 15693 command/response */
339e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef RW_I93_FLAG_DATA_RATE
340e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define RW_I93_FLAG_DATA_RATE       I93_FLAG_DATA_RATE_HIGH
341e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
342e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
343e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* TRUE, to include Card Emulation related test commands */
344e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CE_TEST_INCLUDED
345e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CE_TEST_INCLUDED            FALSE
346e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
347e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
348e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
349e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Quick Timer */
350e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef QUICK_TIMER_TICKS_PER_SEC
351e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define QUICK_TIMER_TICKS_PER_SEC   100       /* 10ms timer */
352e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
353e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
354e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
355e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
356e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
357e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** LLCP
358e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
359e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
360e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
361e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_TEST_INCLUDED
362e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_TEST_INCLUDED          FALSE
363e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
364e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
365e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_POOL_ID
366e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_POOL_ID                GKI_POOL_ID_3
367e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
368e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
369e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_POOL_BUF_SIZE
370e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_POOL_BUF_SIZE          GKI_BUF3_SIZE
371e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
372e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
373e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* LLCP Maximum Information Unit (between LLCP_DEFAULT_MIU(128) and LLCP_MAX_MIU (2175)*/
374e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_MIU
375e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_MIU                    (LLCP_POOL_BUF_SIZE - BT_HDR_SIZE - NCI_MSG_OFFSET_SIZE - NCI_DATA_HDR_SIZE - LLCP_PDU_HEADER_SIZE)
376e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
377e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
378e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Link Timeout, LTO */
379e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_LTO_VALUE
380e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_LTO_VALUE              1000    /* Default is 100ms. It should be sufficiently larger than RWT */
381e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
382e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
383e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*
384e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** LTO is max time interval between the last bit received and the first bit sent over the air.
385e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Link timeout must be delayed as much as time between the packet sent from LLCP and the last bit transmitted at NFCC.
386e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**  - 200ms, max OTA transmitting time between the first bit and the last bit at NFCC
387e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**    Largest MIU(2175bytes) of LLCP must be fragmented and sent on NFC-DEP over the air.
388e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**    8 * (DEP_REQ/RES+ACK) + DEP_REQ/RES for 2175 MIU at 106kbps bit rate.
389e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**  - 10ms, processing time
390e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*/
391e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_INTERNAL_TX_DELAY
392e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_INTERNAL_TX_DELAY      210
393e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
394e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
395e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*
396e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** LTO is max time interval between the last bit received and the first bit sent over the air.
397e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Link timeout must be delayed as much as time between the first bit received at NFCC and the packet received at LLCP.
398e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**  - 200ms, max OTA transmitting time between the first bit and the last bit at NFCC
399e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**    LLCP cannot receive data packet until all bit are received and reassembled in NCI.
400e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**    8 * (DEP_REQ/RES+ACK) + DEP_REQ/RES for 2175 MIU at 106kbps bit rate.
401e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**  - 10ms, processing time
402e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*/
403e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_INTERNAL_RX_DELAY
404e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_INTERNAL_RX_DELAY      210
405e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
406e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
407e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Wait for application layer sending data before sending SYMM */
408e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_DELAY_RESP_TIME
409e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_DELAY_RESP_TIME        20      /* in ms */
410e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
411e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
412e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* LLCP inactivity timeout for initiator */
413e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_INIT_INACTIVITY_TIMEOUT
414e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_INIT_INACTIVITY_TIMEOUT            0    /* in ms */
415e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
416e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
417e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* LLCP inactivity timeout for target */
418e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_TARGET_INACTIVITY_TIMEOUT
419e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_TARGET_INACTIVITY_TIMEOUT          0    /* in ms */
420e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
421e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
422e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* LLCP delay timeout to send the first PDU as initiator */
423e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_DELAY_TIME_TO_SEND_FIRST_PDU
424e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_DELAY_TIME_TO_SEND_FIRST_PDU      50    /* in ms */
425e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
426e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
427e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Response Waiting Time */
428e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_WAITING_TIME
429e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_WAITING_TIME           7       /* its scaled value should be less than LTO */
430e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
431e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
432e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Options Parameters */
433e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_OPT_VALUE
434e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_OPT_VALUE              LLCP_LSC_3  /* Link Service Class 3 */
435e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
436e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
437e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data link connection timeout */
438e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_DATA_LINK_CONNECTION_TOUT
439e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_DATA_LINK_CONNECTION_TOUT      1000
440e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
441e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
442e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max length of service name */
443e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_MAX_SN_LEN
444e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_MAX_SN_LEN             255     /* max length of service name */
445e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
446e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
447e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of well-known services, at least 2 for LM and SDP and up to 16 */
448e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_MAX_WKS
449e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_MAX_WKS                5
450e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
451e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
452e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of services advertised by local SDP, up to 16 */
453e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_MAX_SERVER
454e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_MAX_SERVER             10
455e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
456e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
457e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of services not advertised by local SDP, up to 32 */
458e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_MAX_CLIENT
459e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_MAX_CLIENT             20
460e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
461e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
462e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of data link connections */
463e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_MAX_DATA_LINK
464e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_MAX_DATA_LINK          16
465e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
466e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
467e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of outstanding service discovery requests */
468e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_MAX_SDP_TRANSAC
469e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_MAX_SDP_TRANSAC        16
470e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
471e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
472e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Percentage of LLCP buffer pool for receiving data */
473e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_RX_BUFF_RATIO
474e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_RX_BUFF_RATIO                  30
475e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
476e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
477e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Rx congestion end threshold as percentage of receiving buffers */
478e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_RX_CONGEST_END
479e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_RX_CONGEST_END                 50
480e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
481e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
482e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Rx congestion start threshold as percentage of receiving buffers */
483e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_RX_CONGEST_START
484e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_RX_CONGEST_START               70
485e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
486e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
487e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* limitation of rx UI PDU as percentage of receiving buffers */
488e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_LL_RX_BUFF_LIMIT
489e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_LL_RX_BUFF_LIMIT               30
490e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
491e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
492e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* minimum rx congestion threshold (number of rx I PDU in queue) for data link connection */
493e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_DL_MIN_RX_CONGEST
494e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_DL_MIN_RX_CONGEST              4
495e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
496e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
497e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* limitation of tx UI PDU as percentage of transmitting buffers */
498e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef LLCP_LL_TX_BUFF_LIMIT
499e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define LLCP_LL_TX_BUFF_LIMIT               30
500e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
501e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
502e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
503e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
504e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA
505e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
506e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/
507e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_DYNAMIC_MEMORY
508e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DYNAMIC_MEMORY          FALSE
509e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
510e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
511e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_INCLUDED
512e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_INCLUDED                TRUE
513e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
514e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
515e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_P2P_INCLUDED
516e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_P2P_INCLUDED            TRUE
517e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
518e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
5195c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/* Maximum Idle time (no hcp) to wait for EE DISC REQ Ntf(s) */
5205c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef NFA_HCI_NETWK_INIT_IDLE_TIMEOUT
5215c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFA_HCI_NETWK_INIT_IDLE_TIMEOUT  1000
522e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
523e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
524e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_HCI_MAX_HOST_IN_NETWORK
525e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_MAX_HOST_IN_NETWORK 0x06
526e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
527e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
528e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of Application that can be registered to NFA-HCI */
529e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_HCI_MAX_APP_CB
530e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_MAX_APP_CB          0x05
531e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
532e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
533e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of HCI gates that can be created */
534e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_HCI_MAX_GATE_CB
535e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_MAX_GATE_CB         0x06
536e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
537e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
538e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of HCI pipes that can be created for the whole system */
539e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_HCI_MAX_PIPE_CB
540e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_MAX_PIPE_CB         0x08
541e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
542e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
543e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Timeout for waiting for the response to HCP Command packet */
5445c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef NFA_HCI_RESPONSE_TIMEOUT
5455c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFA_HCI_RESPONSE_TIMEOUT    1000
546e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
547e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
548e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Default poll duration (may be over-ridden using NFA_SetRfDiscoveryDuration) */
549e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_DM_DISC_DURATION_POLL
550e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DM_DISC_DURATION_POLL               500  /* Android requires 500 */
551e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
552e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
553e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Automatic NDEF detection (when not in exclusive RF mode) */
554e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_DM_AUTO_DETECT_NDEF
555e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DM_AUTO_DETECT_NDEF      FALSE  /* !!!!! NFC-Android needs FALSE */
556e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
557e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
558e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Automatic NDEF read (when not in exclusive RF mode) */
559e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_DM_AUTO_READ_NDEF
560e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DM_AUTO_READ_NDEF        FALSE  /* !!!!! NFC-Android needs FALSE */
561e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
562e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
563a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Automatic NDEF presence check (when not in exclusive RF mode) */
564e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_DM_AUTO_PRESENCE_CHECK
565e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DM_AUTO_PRESENCE_CHECK   FALSE  /* Android requires FALSE */
566e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
567e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
568a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Presence check option: 0x01: use sleep/wake for none-NDEF ISO-DEP tags */
569a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#ifndef NFA_DM_PRESENCE_CHECK_OPTION
570a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define NFA_DM_PRESENCE_CHECK_OPTION                0x03  /* !!!!! Android needs value 3 */
571a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#endif
572a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
573a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* Maximum time to wait for presence check response */
574a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#ifndef NFA_DM_MAX_PRESENCE_CHECK_TIMEOUT
575a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define NFA_DM_MAX_PRESENCE_CHECK_TIMEOUT           500
576a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#endif
577a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
5785c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/* Default delay to auto presence check after sending raw frame */
5795c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef NFA_DM_DEFAULT_PRESENCE_CHECK_START_DELAY
5805c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFA_DM_DEFAULT_PRESENCE_CHECK_START_DELAY   750
5815c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif
5825c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
5837c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu/* Timeout for reactivation of Kovio bar code tag (presence check) */
5847c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#ifndef NFA_DM_DISC_TIMEOUT_KOVIO_PRESENCE_CHECK
5857c69b2723b60a59df4aaa58b13985b3483b291bfEvan Chu#define NFA_DM_DISC_TIMEOUT_KOVIO_PRESENCE_CHECK    (1000)
586e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
587e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
588e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of NDEF type handlers that can be registered (including the default handler) */
589e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_NDEF_MAX_HANDLERS
590e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_NDEF_MAX_HANDLERS       8
591e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
592e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
593e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Maximum number of listen entries configured/registered with NFA_CeConfigureUiccListenTech, */
594e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA_CeRegisterFelicaSystemCodeOnDH, or NFA_CeRegisterT4tAidOnDH                            */
595e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_CE_LISTEN_INFO_MAX
596e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_CE_LISTEN_INFO_MAX        5
597e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
598e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
599e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_CHO_INCLUDED
6005c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFA_CHO_INCLUDED            FALSE /* Anddroid must use FALSE to exclude CHO */
601e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
602e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
603e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* MIU for CHO              */
604e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_CHO_MIU
605e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_CHO_MIU                    499
606e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
607e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
608e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Receiving Window for CHO */
609e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_CHO_RW
610e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_CHO_RW                     4
611e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
612e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
613e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of alternative carrier information */
614e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_CHO_MAX_AC_INFO
615e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_CHO_MAX_AC_INFO                 2
616e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
617e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
618e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max reference character length, it is up to 255 but it's RECOMMENDED short */
619e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_CHO_MAX_REF_NAME_LEN
620e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_CHO_MAX_REF_NAME_LEN            8
621e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
622e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
623e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max auxiliary data count */
624e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_CHO_MAX_AUX_DATA_COUNT
625e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_CHO_MAX_AUX_DATA_COUNT          2
626e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
627e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
628e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_CHO_TEST_INCLUDED
629e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_CHO_TEST_INCLUDED           FALSE
630e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
631e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
632e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_SNEP_INCLUDED
6335c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFA_SNEP_INCLUDED               FALSE /* Android must use FALSE to exclude SNEP */
634e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
635e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
636e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max acceptable length */
637e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_SNEP_DEFAULT_SERVER_MAX_NDEF_SIZE
638e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_SNEP_DEFAULT_SERVER_MAX_NDEF_SIZE          500000
639e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
640e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
641e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of SNEP server/client and data link connection */
642e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_SNEP_MAX_CONN
643e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_SNEP_MAX_CONN               6
644e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
645e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
646e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number data link connection of SNEP default server*/
647e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_SNEP_DEFAULT_MAX_CONN
648e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_SNEP_DEFAULT_MAX_CONN       3
649e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
650e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
651e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* MIU for SNEP              */
652e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_SNEP_MIU
653e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_SNEP_MIU                    1980        /* Modified for NFC-A */
654e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
655e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
656e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Receiving Window for SNEP */
657e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_SNEP_RW
658e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_SNEP_RW                     2           /* Modified for NFC-A */
659e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
660e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
661e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Max number of NFCEE supported */
662e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_EE_MAX_EE_SUPPORTED
6638263ec708307f43758888ef36da854bb589939aeMartijn Coenen#define NFA_EE_MAX_EE_SUPPORTED         4           /* Modified for NFC-A until we add dynamic support */
664e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
665e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
666e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Maximum number of AID entries per target_handle  */
667e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_EE_MAX_AID_ENTRIES
668f23dcad2c02e3e8d08fe9bbef61776d579b5cb49Paul Chaisson#define NFA_EE_MAX_AID_ENTRIES      (32)
669e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
670e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
671e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Maximum number of callback functions can be registered through NFA_EeRegister() */
672e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_EE_MAX_CBACKS
673e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_MAX_CBACKS           (3)
674e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
675e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
676e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_DTA_INCLUDED
677e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_DTA_INCLUDED            TRUE
678e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
679e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
6805c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
6815c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/*****************************************************************************
6825c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen**  Define HAL_WRITE depending on whether HAL is using shared GKI resources
6835c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen**  as the NFC stack.
6845c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen*****************************************************************************/
6855c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#ifndef HAL_WRITE
6865c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define HAL_WRITE(p)    {nfc_cb.p_hal->write(p->len, (UINT8 *)(p+1) + p->offset); GKI_freebuf(p);}
6875c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
688a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#ifdef NFC_HAL_SHARED_GKI
689a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
690a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu/* NFC HAL Included if NFC_NFCEE_INCLUDED */
691a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#if (NFC_NFCEE_INCLUDED == TRUE)
692a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
693a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#ifndef NFC_HAL_HCI_INCLUDED
694a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define NFC_HAL_HCI_INCLUDED    TRUE
695a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#endif
696a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#else /* NFC_NFCEE_INCLUDED == TRUE */
697a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#ifndef NFC_HAL_HCI_INCLUDED
698a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#define NFC_HAL_HCI_INCLUDED    FALSE
699a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#endif
700a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
701a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#endif /* NFC_NFCEE_INCLUDED == FALSE */
702a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
703a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu#endif /* NFC_HAL_SHARED_GKI */
704a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu
7055c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
7065c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
7075c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#endif /* HAL_WRITE */
7085c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
7095c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
710e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFC_TARGET_H */
711e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
712e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
713e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
714