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