nfc_target.h revision e9629bad30a9f478b336ab46b8e6e02f7f87af46
1/******************************************************************************
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
132/* 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
142/******************************************************************************
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
189/* Define to TRUE to include not openned Broadcom Vendor Specific implementation */
190
191/* Define to TRUE if compling for NFC Reader/Writer Only mode */
192#ifndef NFC_RW_ONLY
193#define NFC_RW_ONLY         FALSE
194#endif
195
196/* Define to TRUE to use dynamic memory allocation.
197 * The default is FALSE - to use static memory allocations.
198*/
199#ifndef NFC_DYNAMIC_MEMORY
200#define NFC_DYNAMIC_MEMORY              FALSE
201#endif
202
203/* Timeout for receiving response to NCI command */
204#ifndef NFC_CMD_CMPL_TIMEOUT
205#define NFC_CMD_CMPL_TIMEOUT        2
206#endif
207
208/* Timeout for waiting on data credit/NFC-DEP */
209#ifndef NFC_DEACTIVATE_TIMEOUT
210#define NFC_DEACTIVATE_TIMEOUT      2
211#endif
212
213/* the maximum number of Vendor Specific callback functions allowed to be registered. 1-14 */
214#ifndef NFC_NUM_VS_CBACKS
215#define NFC_NUM_VS_CBACKS       3
216#endif
217
218/* the maximum number of NCI connections allowed. 1-14 */
219#ifndef NCI_MAX_CONN_CBS
220#define NCI_MAX_CONN_CBS        4
221#endif
222
223/* Maximum number of NCI commands that the NFCC accepts without needing to wait for response */
224#ifndef NCI_MAX_CMD_WINDOW
225#define NCI_MAX_CMD_WINDOW      1
226#endif
227
228/* Define to TRUE to include the NFCEE related functionalities */
229#ifndef NFC_NFCEE_INCLUDED
230#define NFC_NFCEE_INCLUDED          TRUE
231#endif
232
233/* the maximum number of NFCEE interface supported */
234#ifndef NFC_MAX_EE_INTERFACE
235#define NFC_MAX_EE_INTERFACE        3
236#endif
237
238/* the maximum number of NFCEE information supported. */
239#ifndef NFC_MAX_EE_INFO
240#define NFC_MAX_EE_INFO        8
241#endif
242
243/* the maximum number of NFCEE TLVs supported */
244#ifndef NFC_MAX_EE_TLVS
245#define NFC_MAX_EE_TLVS        1
246#endif
247
248/* the maximum size of NFCEE TLV list supported */
249#ifndef NFC_MAX_EE_TLV_SIZE
250#define NFC_MAX_EE_TLV_SIZE        150
251#endif
252
253/* Maximum time to discover NFCEE */
254#ifndef NFA_EE_DISCV_TIMEOUT_VAL
255#define NFA_EE_DISCV_TIMEOUT_VAL    2000
256#endif
257
258/* Number of times reader/writer should attempt to resend a command on failure */
259#ifndef RW_MAX_RETRIES
260#define RW_MAX_RETRIES              5
261#endif
262
263/* RW NDEF Support */
264#ifndef RW_NDEF_INCLUDED
265#define RW_NDEF_INCLUDED            TRUE
266#endif
267
268/* RW Type 1 Tag timeout for each API call, in ms */
269#ifndef RW_T1T_TOUT_RESP
270#define RW_T1T_TOUT_RESP            100
271#endif
272
273/* CE Type 2 Tag timeout for controller command, in ms */
274#ifndef CE_T2T_TOUT_RESP
275#define CE_T2T_TOUT_RESP            1000
276#endif
277
278/* RW Type 2 Tag timeout for each API call, in ms */
279#ifndef RW_T2T_TOUT_RESP
280#define RW_T2T_TOUT_RESP            150 /* Android requires 150 instead of 100 for presence-check*/
281#endif
282
283/* RW Type 2 Tag timeout for each API call, in ms */
284#ifndef RW_T2T_SEC_SEL_TOUT_RESP
285#define RW_T2T_SEC_SEL_TOUT_RESP    10
286#endif
287
288/* RW Type 3 Tag timeout for each API call, in ms */
289#ifndef RW_T3T_TOUT_RESP
290#define RW_T3T_TOUT_RESP            100         /* NFC-Android will use 100 instead of 75 for T3t presence-check */
291#endif
292
293/* CE Type 3 Tag maximum response timeout index (for check and update, used in SENSF_RES) */
294#ifndef CE_T3T_MRTI_C
295#define CE_T3T_MRTI_C               0xFF
296#endif
297#ifndef CE_T3T_MRTI_U
298#define CE_T3T_MRTI_U               0xFF
299#endif
300
301/* Default maxblocks for CE_T3T UPDATE/CHECK operations */
302#ifndef CE_T3T_DEFAULT_UPDATE_MAXBLOCKS
303#define CE_T3T_DEFAULT_UPDATE_MAXBLOCKS 3
304#endif
305
306#ifndef CE_T3T_DEFAULT_CHECK_MAXBLOCKS
307#define CE_T3T_DEFAULT_CHECK_MAXBLOCKS  3
308#endif
309
310/* CE Type 4 Tag, Frame Waiting time Integer */
311#ifndef CE_T4T_ISO_DEP_FWI
312#define CE_T4T_ISO_DEP_FWI          7
313#endif
314
315/* RW Type 4 Tag timeout for each API call, in ms */
316#ifndef RW_T4T_TOUT_RESP
317#define RW_T4T_TOUT_RESP            1000
318#endif
319
320/* CE Type 4 Tag timeout for update file, in ms */
321#ifndef CE_T4T_TOUT_UPDATE
322#define CE_T4T_TOUT_UPDATE          1000
323#endif
324
325/* CE Type 4 Tag, mandatory NDEF File ID */
326#ifndef CE_T4T_MANDATORY_NDEF_FILE_ID
327#define CE_T4T_MANDATORY_NDEF_FILE_ID    0x1000
328#endif
329
330/* CE Type 4 Tag, max number of AID supported */
331#ifndef CE_T4T_MAX_REG_AID
332#define CE_T4T_MAX_REG_AID         4
333#endif
334
335/* Sub carrier */
336#ifndef RW_I93_FLAG_SUB_CARRIER
337#define RW_I93_FLAG_SUB_CARRIER     I93_FLAG_SUB_CARRIER_SINGLE
338#endif
339
340/* Data rate for 15693 command/response */
341#ifndef RW_I93_FLAG_DATA_RATE
342#define RW_I93_FLAG_DATA_RATE       I93_FLAG_DATA_RATE_HIGH
343#endif
344
345/* TRUE, to include Card Emulation related test commands */
346#ifndef CE_TEST_INCLUDED
347#define CE_TEST_INCLUDED            FALSE
348#endif
349
350
351/* Quick Timer */
352#ifndef QUICK_TIMER_TICKS_PER_SEC
353#define QUICK_TIMER_TICKS_PER_SEC   100       /* 10ms timer */
354#endif
355
356
357/******************************************************************************
358**
359** LLCP
360**
361******************************************************************************/
362
363#ifndef LLCP_TEST_INCLUDED
364#define LLCP_TEST_INCLUDED          FALSE
365#endif
366
367#ifndef LLCP_POOL_ID
368#define LLCP_POOL_ID                GKI_POOL_ID_3
369#endif
370
371#ifndef LLCP_POOL_BUF_SIZE
372#define LLCP_POOL_BUF_SIZE          GKI_BUF3_SIZE
373#endif
374
375/* LLCP Maximum Information Unit (between LLCP_DEFAULT_MIU(128) and LLCP_MAX_MIU (2175)*/
376#ifndef LLCP_MIU
377#define LLCP_MIU                    (LLCP_POOL_BUF_SIZE - BT_HDR_SIZE - NCI_MSG_OFFSET_SIZE - NCI_DATA_HDR_SIZE - LLCP_PDU_HEADER_SIZE)
378#endif
379
380/* Link Timeout, LTO */
381#ifndef LLCP_LTO_VALUE
382#define LLCP_LTO_VALUE              1000    /* Default is 100ms. It should be sufficiently larger than RWT */
383#endif
384
385/*
386** LTO is max time interval between the last bit received and the first bit sent over the air.
387** Link timeout must be delayed as much as time between the packet sent from LLCP and the last bit transmitted at NFCC.
388**  - 200ms, max OTA transmitting time between the first bit and the last bit at NFCC
389**    Largest MIU(2175bytes) of LLCP must be fragmented and sent on NFC-DEP over the air.
390**    8 * (DEP_REQ/RES+ACK) + DEP_REQ/RES for 2175 MIU at 106kbps bit rate.
391**  - 10ms, processing time
392*/
393#ifndef LLCP_INTERNAL_TX_DELAY
394#define LLCP_INTERNAL_TX_DELAY      210
395#endif
396
397/*
398** LTO is max time interval between the last bit received and the first bit sent over the air.
399** Link timeout must be delayed as much as time between the first bit received at NFCC and the packet received at LLCP.
400**  - 200ms, max OTA transmitting time between the first bit and the last bit at NFCC
401**    LLCP cannot receive data packet until all bit are received and reassembled in NCI.
402**    8 * (DEP_REQ/RES+ACK) + DEP_REQ/RES for 2175 MIU at 106kbps bit rate.
403**  - 10ms, processing time
404*/
405#ifndef LLCP_INTERNAL_RX_DELAY
406#define LLCP_INTERNAL_RX_DELAY      210
407#endif
408
409/* Wait for application layer sending data before sending SYMM */
410#ifndef LLCP_DELAY_RESP_TIME
411#define LLCP_DELAY_RESP_TIME        20      /* in ms */
412#endif
413
414/* LLCP inactivity timeout for initiator */
415#ifndef LLCP_INIT_INACTIVITY_TIMEOUT
416#define LLCP_INIT_INACTIVITY_TIMEOUT            0    /* in ms */
417#endif
418
419/* LLCP inactivity timeout for target */
420#ifndef LLCP_TARGET_INACTIVITY_TIMEOUT
421#define LLCP_TARGET_INACTIVITY_TIMEOUT          0    /* in ms */
422#endif
423
424/* LLCP delay timeout to send the first PDU as initiator */
425#ifndef LLCP_DELAY_TIME_TO_SEND_FIRST_PDU
426#define LLCP_DELAY_TIME_TO_SEND_FIRST_PDU      50    /* in ms */
427#endif
428
429/* Response Waiting Time */
430#ifndef LLCP_WAITING_TIME
431#define LLCP_WAITING_TIME           7       /* its scaled value should be less than LTO */
432#endif
433
434/* Options Parameters */
435#ifndef LLCP_OPT_VALUE
436#define LLCP_OPT_VALUE              LLCP_LSC_3  /* Link Service Class 3 */
437#endif
438
439/* Data link connection timeout */
440#ifndef LLCP_DATA_LINK_CONNECTION_TOUT
441#define LLCP_DATA_LINK_CONNECTION_TOUT      1000
442#endif
443
444/* Max length of service name */
445#ifndef LLCP_MAX_SN_LEN
446#define LLCP_MAX_SN_LEN             255     /* max length of service name */
447#endif
448
449/* Max number of well-known services, at least 2 for LM and SDP and up to 16 */
450#ifndef LLCP_MAX_WKS
451#define LLCP_MAX_WKS                5
452#endif
453
454/* Max number of services advertised by local SDP, up to 16 */
455#ifndef LLCP_MAX_SERVER
456#define LLCP_MAX_SERVER             10
457#endif
458
459/* Max number of services not advertised by local SDP, up to 32 */
460#ifndef LLCP_MAX_CLIENT
461#define LLCP_MAX_CLIENT             20
462#endif
463
464/* Max number of data link connections */
465#ifndef LLCP_MAX_DATA_LINK
466#define LLCP_MAX_DATA_LINK          16
467#endif
468
469/* Max number of outstanding service discovery requests */
470#ifndef LLCP_MAX_SDP_TRANSAC
471#define LLCP_MAX_SDP_TRANSAC        16
472#endif
473
474/* Percentage of LLCP buffer pool for receiving data */
475#ifndef LLCP_RX_BUFF_RATIO
476#define LLCP_RX_BUFF_RATIO                  30
477#endif
478
479/* Rx congestion end threshold as percentage of receiving buffers */
480#ifndef LLCP_RX_CONGEST_END
481#define LLCP_RX_CONGEST_END                 50
482#endif
483
484/* Rx congestion start threshold as percentage of receiving buffers */
485#ifndef LLCP_RX_CONGEST_START
486#define LLCP_RX_CONGEST_START               70
487#endif
488
489/* limitation of rx UI PDU as percentage of receiving buffers */
490#ifndef LLCP_LL_RX_BUFF_LIMIT
491#define LLCP_LL_RX_BUFF_LIMIT               30
492#endif
493
494/* minimum rx congestion threshold (number of rx I PDU in queue) for data link connection */
495#ifndef LLCP_DL_MIN_RX_CONGEST
496#define LLCP_DL_MIN_RX_CONGEST              4
497#endif
498
499/* limitation of tx UI PDU as percentage of transmitting buffers */
500#ifndef LLCP_LL_TX_BUFF_LIMIT
501#define LLCP_LL_TX_BUFF_LIMIT               30
502#endif
503
504/******************************************************************************
505**
506** NFA
507**
508******************************************************************************/
509#ifndef NFA_DYNAMIC_MEMORY
510#define NFA_DYNAMIC_MEMORY          FALSE
511#endif
512
513#ifndef NFA_INCLUDED
514#define NFA_INCLUDED                TRUE
515#endif
516
517#ifndef NFA_P2P_INCLUDED
518#define NFA_P2P_INCLUDED            TRUE
519#endif
520
521/* Maximum Idle time (no hcp) to wait for EE DISC REQ Ntf(s) */
522#ifndef NFA_HCI_NETWK_INIT_IDLE_TIMEOUT
523#define NFA_HCI_NETWK_INIT_IDLE_TIMEOUT  1000
524#endif
525
526#ifndef NFA_HCI_MAX_HOST_IN_NETWORK
527#define NFA_HCI_MAX_HOST_IN_NETWORK 0x06
528#endif
529
530/* Max number of Application that can be registered to NFA-HCI */
531#ifndef NFA_HCI_MAX_APP_CB
532#define NFA_HCI_MAX_APP_CB          0x05
533#endif
534
535/* Max number of HCI gates that can be created */
536#ifndef NFA_HCI_MAX_GATE_CB
537#define NFA_HCI_MAX_GATE_CB         0x06
538#endif
539
540/* Max number of HCI pipes that can be created for the whole system */
541#ifndef NFA_HCI_MAX_PIPE_CB
542#define NFA_HCI_MAX_PIPE_CB         0x08
543#endif
544
545/* Timeout for waiting for the response to HCP Command packet */
546#ifndef NFA_HCI_RESPONSE_TIMEOUT
547#define NFA_HCI_RESPONSE_TIMEOUT    1000
548#endif
549
550/* Default poll duration (may be over-ridden using NFA_SetRfDiscoveryDuration) */
551#ifndef NFA_DM_DISC_DURATION_POLL
552#define NFA_DM_DISC_DURATION_POLL               500  /* Android requires 500 */
553#endif
554
555/* Automatic NDEF detection (when not in exclusive RF mode) */
556#ifndef NFA_DM_AUTO_DETECT_NDEF
557#define NFA_DM_AUTO_DETECT_NDEF      FALSE  /* !!!!! NFC-Android needs FALSE */
558#endif
559
560/* Automatic NDEF read (when not in exclusive RF mode) */
561#ifndef NFA_DM_AUTO_READ_NDEF
562#define NFA_DM_AUTO_READ_NDEF        FALSE  /* !!!!! NFC-Android needs FALSE */
563#endif
564
565/* Automatic NDEF read (when not in exclusive RF mode) */
566#ifndef NFA_DM_AUTO_PRESENCE_CHECK
567#define NFA_DM_AUTO_PRESENCE_CHECK   FALSE  /* Android requires FALSE */
568#endif
569
570/* Default delay to auto presence check after sending raw frame */
571#ifndef NFA_DM_DEFAULT_PRESENCE_CHECK_START_DELAY
572#define NFA_DM_DEFAULT_PRESENCE_CHECK_START_DELAY   750
573#endif
574
575/* Timeout for reactivation of Kovio bar code tag (presence check) */
576#ifndef NFA_DM_DISC_TIMEOUT_KOVIO_PRESENCE_CHECK
577#define NFA_DM_DISC_TIMEOUT_KOVIO_PRESENCE_CHECK    (1000)
578#endif
579
580/* Max number of NDEF type handlers that can be registered (including the default handler) */
581#ifndef NFA_NDEF_MAX_HANDLERS
582#define NFA_NDEF_MAX_HANDLERS       8
583#endif
584
585/* Maximum number of listen entries configured/registered with NFA_CeConfigureUiccListenTech, */
586/* NFA_CeRegisterFelicaSystemCodeOnDH, or NFA_CeRegisterT4tAidOnDH                            */
587#ifndef NFA_CE_LISTEN_INFO_MAX
588#define NFA_CE_LISTEN_INFO_MAX        5
589#endif
590
591#ifndef NFA_CHO_INCLUDED
592#define NFA_CHO_INCLUDED            FALSE /* Anddroid must use FALSE to exclude CHO */
593#endif
594
595/* MIU for CHO              */
596#ifndef NFA_CHO_MIU
597#define NFA_CHO_MIU                    499
598#endif
599
600/* Receiving Window for CHO */
601#ifndef NFA_CHO_RW
602#define NFA_CHO_RW                     4
603#endif
604
605/* Max number of alternative carrier information */
606#ifndef NFA_CHO_MAX_AC_INFO
607#define NFA_CHO_MAX_AC_INFO                 2
608#endif
609
610/* Max reference character length, it is up to 255 but it's RECOMMENDED short */
611#ifndef NFA_CHO_MAX_REF_NAME_LEN
612#define NFA_CHO_MAX_REF_NAME_LEN            8
613#endif
614
615/* Max auxiliary data count */
616#ifndef NFA_CHO_MAX_AUX_DATA_COUNT
617#define NFA_CHO_MAX_AUX_DATA_COUNT          2
618#endif
619
620#ifndef NFA_CHO_TEST_INCLUDED
621#define NFA_CHO_TEST_INCLUDED           FALSE
622#endif
623
624#ifndef NFA_SNEP_INCLUDED
625#define NFA_SNEP_INCLUDED               FALSE /* Android must use FALSE to exclude SNEP */
626#endif
627
628/* Max acceptable length */
629#ifndef NFA_SNEP_DEFAULT_SERVER_MAX_NDEF_SIZE
630#define NFA_SNEP_DEFAULT_SERVER_MAX_NDEF_SIZE          500000
631#endif
632
633/* Max number of SNEP server/client and data link connection */
634#ifndef NFA_SNEP_MAX_CONN
635#define NFA_SNEP_MAX_CONN               6
636#endif
637
638/* Max number data link connection of SNEP default server*/
639#ifndef NFA_SNEP_DEFAULT_MAX_CONN
640#define NFA_SNEP_DEFAULT_MAX_CONN       3
641#endif
642
643/* MIU for SNEP              */
644#ifndef NFA_SNEP_MIU
645#define NFA_SNEP_MIU                    1980        /* Modified for NFC-A */
646#endif
647
648/* Receiving Window for SNEP */
649#ifndef NFA_SNEP_RW
650#define NFA_SNEP_RW                     2           /* Modified for NFC-A */
651#endif
652
653/* Max number of NFCEE supported */
654#ifndef NFA_EE_MAX_EE_SUPPORTED
655#define NFA_EE_MAX_EE_SUPPORTED         4           /* Modified for NFC-A until we add dynamic support */
656#endif
657
658/* Maximum number of AID entries per target_handle  */
659#ifndef NFA_EE_MAX_AID_ENTRIES
660#define NFA_EE_MAX_AID_ENTRIES      (10)
661#endif
662
663/* Maximum number of callback functions can be registered through NFA_EeRegister() */
664#ifndef NFA_EE_MAX_CBACKS
665#define NFA_EE_MAX_CBACKS           (3)
666#endif
667
668#ifndef NFA_DTA_INCLUDED
669#define NFA_DTA_INCLUDED            TRUE
670#endif
671
672
673/*****************************************************************************
674**  Define HAL_WRITE depending on whether HAL is using shared GKI resources
675**  as the NFC stack.
676*****************************************************************************/
677#ifndef HAL_WRITE
678#define HAL_WRITE(p)    {nfc_cb.p_hal->write(p->len, (UINT8 *)(p+1) + p->offset); GKI_freebuf(p);}
679
680
681
682#endif /* HAL_WRITE */
683
684
685#endif /* NFC_TARGET_H */
686
687
688
689