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 #ifndef LMP_TEST
33 #include "bt_trace.h"
34 #endif
35 
36 #ifndef USERIAL_DEBUG
37 #define USERIAL_DEBUG FALSE
38 #endif
39 
40 /******************************************************************************
41 **
42 ** GKI Mail Box and Timer
43 **
44 ******************************************************************************/
45 
46 /* Mailbox event mask for NFC stack */
47 #ifndef NFC_MBOX_EVT_MASK
48 #define NFC_MBOX_EVT_MASK (TASK_MBOX_0_EVT_MASK)
49 #endif
50 
51 /* Mailbox ID for NFC stack */
52 #ifndef NFC_MBOX_ID
53 #define NFC_MBOX_ID (TASK_MBOX_0)
54 #endif
55 
56 /* Mailbox event mask for NFA */
57 #ifndef NFA_MBOX_EVT_MASK
58 #define NFA_MBOX_EVT_MASK (TASK_MBOX_2_EVT_MASK)
59 #endif
60 
61 /* Mailbox ID for NFA */
62 #ifndef NFA_MBOX_ID
63 #define NFA_MBOX_ID (TASK_MBOX_2)
64 #endif
65 
66 /* GKI timer id used for protocol timer in NFC stack */
67 #ifndef NFC_TIMER_ID
68 #define NFC_TIMER_ID (TIMER_0)
69 #endif
70 
71 /* GKI timer event mask used for protocol timer in NFC stack */
72 #ifndef NFC_TIMER_EVT_MASK
73 #define NFC_TIMER_EVT_MASK (TIMER_0_EVT_MASK)
74 #endif
75 
76 /* GKI timer id used for quick timer in NFC stack */
77 #ifndef NFC_QUICK_TIMER_ID
78 #define NFC_QUICK_TIMER_ID (TIMER_1)
79 #endif
80 
81 /* GKI timer event mask used for quick timer in NFC stack */
82 #ifndef NFC_QUICK_TIMER_EVT_MASK
83 #define NFC_QUICK_TIMER_EVT_MASK (TIMER_1_EVT_MASK)
84 #endif
85 
86 /* GKI timer id used for protocol timer in NFA */
87 #ifndef NFA_TIMER_ID
88 #define NFA_TIMER_ID (TIMER_2)
89 #endif
90 
91 /* GKI timer event mask used for protocol timer in NFA */
92 #ifndef NFA_TIMER_EVT_MASK
93 #define NFA_TIMER_EVT_MASK (TIMER_2_EVT_MASK)
94 #endif
95 
96 /******************************************************************************
97 **
98 ** GKI Buffer Pools
99 **
100 ******************************************************************************/
101 
102 /* NCI command/notification/data */
103 #ifndef NFC_NCI_POOL_ID
104 #define NFC_NCI_POOL_ID GKI_POOL_ID_2
105 #endif
106 
107 #ifndef NFC_NCI_POOL_BUF_SIZE
108 #define NFC_NCI_POOL_BUF_SIZE GKI_BUF2_SIZE
109 #endif
110 
111 /* Reader/Write commands (NCI data payload) */
112 #ifndef NFC_RW_POOL_ID
113 #define NFC_RW_POOL_ID GKI_POOL_ID_2
114 #endif
115 
116 #ifndef NFC_RW_POOL_BUF_SIZE
117 #define NFC_RW_POOL_BUF_SIZE GKI_BUF2_SIZE
118 #endif
119 
120 /* Card Emulation responses (NCI data payload) */
121 #ifndef NFC_CE_POOL_ID
122 #define NFC_CE_POOL_ID GKI_POOL_ID_2
123 #endif
124 
125 #ifndef NFC_CE_POOL_BUF_SIZE
126 #define NFC_CE_POOL_BUF_SIZE GKI_BUF2_SIZE
127 #endif
128 
129 /* NCI msg pool for HAL (for shared NFC/HAL GKI)*/
130 #ifndef NFC_HAL_NCI_POOL_ID
131 #define NFC_HAL_NCI_POOL_ID NFC_NCI_POOL_ID
132 #endif
133 
134 #ifndef NFC_HAL_NCI_POOL_BUF_SIZE
135 #define NFC_HAL_NCI_POOL_BUF_SIZE NFC_NCI_POOL_BUF_SIZE
136 #endif
137 
138 /******************************************************************************
139 **
140 ** NCI Transport definitions
141 **
142 ******************************************************************************/
143 /* offset of the first NCI packet in buffer for outgoing */
144 #ifndef NCI_MSG_OFFSET_SIZE
145 #define NCI_MSG_OFFSET_SIZE 1
146 #endif
147 
148 /* Restore NFCC baud rate to default on shutdown if NFC_UpdateBaudRate was
149  * called */
150 #ifndef NFC_RESTORE_BAUD_ON_SHUTDOWN
151 #define NFC_RESTORE_BAUD_ON_SHUTDOWN TRUE
152 #endif
153 
154 /******************************************************************************
155 **
156 ** NCI
157 **
158 ******************************************************************************/
159 
160 #define NCI_VERSION_0_F 0x0F
161 #define NCI_VERSION_1_0 0x10
162 
163 #ifndef NCI_VERSION
164 #define NCI_VERSION NCI_VERSION_1_0
165 #endif
166 
167 /* TRUE I2C patch is needed */
168 #ifndef NFC_I2C_PATCH_INCLUDED
169 #define NFC_I2C_PATCH_INCLUDED TRUE /* NFC-Android uses this!!! */
170 #endif
171 
172 /******************************************************************************
173 **
174 ** NFC
175 **
176 ******************************************************************************/
177 
178 /* Define to TRUE to include Broadcom Vendor Specific implementation */
179 #ifndef NFC_BRCM_VS_INCLUDED
180 #define NFC_BRCM_VS_INCLUDED TRUE
181 #endif
182 
183 /* Define to TRUE if compling for NFC Reader/Writer Only mode */
184 #ifndef NFC_RW_ONLY
185 #define NFC_RW_ONLY FALSE
186 #endif
187 
188 /* Timeout for receiving response to NCI command */
189 #ifndef NFC_CMD_CMPL_TIMEOUT
190 #define NFC_CMD_CMPL_TIMEOUT 2
191 #endif
192 
193 /* Timeout for waiting on data credit/NFC-DEP */
194 #ifndef NFC_DEACTIVATE_TIMEOUT
195 #define NFC_DEACTIVATE_TIMEOUT 2
196 #endif
197 
198 /* the maximum number of Vendor Specific callback functions allowed to be
199  * registered. 1-14 */
200 #ifndef NFC_NUM_VS_CBACKS
201 #define NFC_NUM_VS_CBACKS 3
202 #endif
203 
204 /* the maximum number of NCI connections allowed. 1-14 */
205 #ifndef NCI_MAX_CONN_CBS
206 #define NCI_MAX_CONN_CBS 4
207 #endif
208 
209 /* Maximum number of NCI commands that the NFCC accepts without needing to wait
210  * for response */
211 #ifndef NCI_MAX_CMD_WINDOW
212 #define NCI_MAX_CMD_WINDOW 1
213 #endif
214 
215 /* Define to TRUE to include the NFCEE related functionalities */
216 #ifndef NFC_NFCEE_INCLUDED
217 #define NFC_NFCEE_INCLUDED TRUE
218 #endif
219 
220 /* the maximum number of NFCEE interface supported */
221 #ifndef NFC_MAX_EE_INTERFACE
222 #define NFC_MAX_EE_INTERFACE 3
223 #endif
224 
225 /* the maximum number of NFCEE information supported. */
226 #ifndef NFC_MAX_EE_INFO
227 #define NFC_MAX_EE_INFO 8
228 #endif
229 
230 /* the maximum number of NFCEE TLVs supported */
231 #ifndef NFC_MAX_EE_TLVS
232 #define NFC_MAX_EE_TLVS 1
233 #endif
234 
235 /* the maximum size of NFCEE TLV list supported */
236 #ifndef NFC_MAX_EE_TLV_SIZE
237 #define NFC_MAX_EE_TLV_SIZE 150
238 #endif
239 
240 /* Maximum time to discover NFCEE */
241 #ifndef NFA_EE_DISCV_TIMEOUT_VAL
242 #define NFA_EE_DISCV_TIMEOUT_VAL 2000
243 #endif
244 
245 /* Number of times reader/writer should attempt to resend a command on failure
246  */
247 #ifndef RW_MAX_RETRIES
248 #define RW_MAX_RETRIES 5
249 #endif
250 
251 /* RW NDEF Support */
252 #ifndef RW_NDEF_INCLUDED
253 #define RW_NDEF_INCLUDED TRUE
254 #endif
255 
256 /* RW Type 1 Tag timeout for each API call, in ms */
257 #ifndef RW_T1T_TOUT_RESP
258 #define RW_T1T_TOUT_RESP 100
259 #endif
260 
261 /* CE Type 2 Tag timeout for controller command, in ms */
262 #ifndef CE_T2T_TOUT_RESP
263 #define CE_T2T_TOUT_RESP 1000
264 #endif
265 
266 /* RW Type 2 Tag timeout for each API call, in ms */
267 #ifndef RW_T2T_TOUT_RESP
268 /* Android requires 150 instead of 100 for presence-check*/
269 #define RW_T2T_TOUT_RESP 150
270 #endif
271 
272 /* RW Type 2 Tag timeout for each API call, in ms */
273 #ifndef RW_T2T_SEC_SEL_TOUT_RESP
274 #define RW_T2T_SEC_SEL_TOUT_RESP 10
275 #endif
276 
277 /* RW Type 3 Tag timeout for each API call, in ms */
278 #ifndef RW_T3T_TOUT_RESP
279 /* NFC-Android will use 100 instead of 75 for T3t presence-check */
280 #define RW_T3T_TOUT_RESP 100
281 #endif
282 
283 /* CE Type 3 Tag maximum response timeout index (for check and update, used in
284  * SENSF_RES) */
285 #ifndef CE_T3T_MRTI_C
286 #define CE_T3T_MRTI_C 0xFF
287 #endif
288 #ifndef CE_T3T_MRTI_U
289 #define CE_T3T_MRTI_U 0xFF
290 #endif
291 
292 /* Default maxblocks for CE_T3T UPDATE/CHECK operations */
293 #ifndef CE_T3T_DEFAULT_UPDATE_MAXBLOCKS
294 #define CE_T3T_DEFAULT_UPDATE_MAXBLOCKS 3
295 #endif
296 
297 #ifndef CE_T3T_DEFAULT_CHECK_MAXBLOCKS
298 #define CE_T3T_DEFAULT_CHECK_MAXBLOCKS 3
299 #endif
300 
301 /* CE Type 4 Tag, Frame Waiting time Integer */
302 #ifndef CE_T4T_ISO_DEP_FWI
303 #define CE_T4T_ISO_DEP_FWI 7
304 #endif
305 
306 /* RW Type 4 Tag timeout for each API call, in ms */
307 #ifndef RW_T4T_TOUT_RESP
308 #define RW_T4T_TOUT_RESP 1000
309 #endif
310 
311 /* CE Type 4 Tag timeout for update file, in ms */
312 #ifndef CE_T4T_TOUT_UPDATE
313 #define CE_T4T_TOUT_UPDATE 1000
314 #endif
315 
316 /* CE Type 4 Tag, mandatory NDEF File ID */
317 #ifndef CE_T4T_MANDATORY_NDEF_FILE_ID
318 #define CE_T4T_MANDATORY_NDEF_FILE_ID 0x1000
319 #endif
320 
321 /* CE Type 4 Tag, max number of AID supported */
322 #ifndef CE_T4T_MAX_REG_AID
323 #define CE_T4T_MAX_REG_AID 4
324 #endif
325 
326 /* Sub carrier */
327 #ifndef RW_I93_FLAG_SUB_CARRIER
328 #define RW_I93_FLAG_SUB_CARRIER I93_FLAG_SUB_CARRIER_SINGLE
329 #endif
330 
331 /* Data rate for 15693 command/response */
332 #ifndef RW_I93_FLAG_DATA_RATE
333 #define RW_I93_FLAG_DATA_RATE I93_FLAG_DATA_RATE_HIGH
334 #endif
335 
336 /* TRUE, to include Card Emulation related test commands */
337 #ifndef CE_TEST_INCLUDED
338 #define CE_TEST_INCLUDED FALSE
339 #endif
340 
341 /* Quick Timer */
342 #ifndef QUICK_TIMER_TICKS_PER_SEC
343 #define QUICK_TIMER_TICKS_PER_SEC 100 /* 10ms timer */
344 #endif
345 
346 /******************************************************************************
347 **
348 ** LLCP
349 **
350 ******************************************************************************/
351 
352 #ifndef LLCP_TEST_INCLUDED
353 #define LLCP_TEST_INCLUDED FALSE
354 #endif
355 
356 #ifndef LLCP_POOL_ID
357 #define LLCP_POOL_ID GKI_POOL_ID_3
358 #endif
359 
360 #ifndef LLCP_POOL_BUF_SIZE
361 #define LLCP_POOL_BUF_SIZE GKI_BUF3_SIZE
362 #endif
363 
364 /* LLCP Maximum Information Unit (between LLCP_DEFAULT_MIU(128) and LLCP_MAX_MIU
365  * (2175)*/
366 #ifndef LLCP_MIU
367 #define LLCP_MIU                                             \
368   (LLCP_POOL_BUF_SIZE - NFC_HDR_SIZE - NCI_MSG_OFFSET_SIZE - \
369    NCI_DATA_HDR_SIZE - LLCP_PDU_HEADER_SIZE)
370 #endif
371 
372 /* Link Timeout, LTO */
373 #ifndef LLCP_LTO_VALUE
374 /* Default is 100ms. It should be sufficiently larger than RWT */
375 #define LLCP_LTO_VALUE 1000
376 #endif
377 
378 /*
379 ** LTO is max time interval between the last bit received and the first bit sent
380 ** over the air. Link timeout must be delayed as much as time between the packet
381 ** sent from LLCP and the last bit transmitted at NFCC.
382 **  - 200ms, max OTA transmitting time between the first bit and the last bit at
383 **    NFCC. Largest MIU(2175bytes) of LLCP must be fragmented and sent on
384 **    NFC-DEP over the air. 8 * (DEP_REQ/RES+ACK) + DEP_REQ/RES for 2175 MIU at
385 **    106kbps bit rate.
386 **  - 10ms, processing time
387 */
388 #ifndef LLCP_INTERNAL_TX_DELAY
389 #define LLCP_INTERNAL_TX_DELAY 210
390 #endif
391 
392 /*
393 ** LTO is max time interval between the last bit received and the first bit sent
394 ** over the air. Link timeout must be delayed as much as time between the first
395 ** bit received at NFCC and the packet received at LLCP.
396 **  - 200ms, max OTA transmitting time between the first bit and the last bit at
397 **    NFCC. LLCP cannot receive data packet until all bit are received and
398 **    reassembled in NCI. 8 * (DEP_REQ/RES+ACK) + DEP_REQ/RES for 2175 MIU at
399 **    106kbps bit rate.
400 **  - 10ms, processing time
401 */
402 #ifndef LLCP_INTERNAL_RX_DELAY
403 #define LLCP_INTERNAL_RX_DELAY 210
404 #endif
405 
406 /* Wait for application layer sending data before sending SYMM */
407 #ifndef LLCP_DELAY_RESP_TIME
408 #define LLCP_DELAY_RESP_TIME 20 /* in ms */
409 #endif
410 
411 /* LLCP inactivity timeout for initiator */
412 #ifndef LLCP_INIT_INACTIVITY_TIMEOUT
413 #define LLCP_INIT_INACTIVITY_TIMEOUT 0 /* in ms */
414 #endif
415 
416 /* LLCP inactivity timeout for target */
417 #ifndef LLCP_TARGET_INACTIVITY_TIMEOUT
418 #define LLCP_TARGET_INACTIVITY_TIMEOUT 0 /* in ms */
419 #endif
420 
421 /* LLCP delay timeout to send the first PDU as initiator */
422 #ifndef LLCP_DELAY_TIME_TO_SEND_FIRST_PDU
423 #define LLCP_DELAY_TIME_TO_SEND_FIRST_PDU 50 /* in ms */
424 #endif
425 
426 /* Response Waiting Time */
427 #ifndef LLCP_WAITING_TIME
428 /* its scaled value should be less than LTO */
429 #define LLCP_WAITING_TIME 7
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
493  * connection */
494 #ifndef LLCP_DL_MIN_RX_CONGEST
495 #define LLCP_DL_MIN_RX_CONGEST 4
496 #endif
497 
498 /* limitation of tx UI PDU as percentage of transmitting buffers */
499 #ifndef LLCP_LL_TX_BUFF_LIMIT
500 #define LLCP_LL_TX_BUFF_LIMIT 30
501 #endif
502 
503 /******************************************************************************
504 **
505 ** NFA
506 **
507 ******************************************************************************/
508 
509 #ifndef NFA_P2P_INCLUDED
510 #define NFA_P2P_INCLUDED TRUE
511 #endif
512 
513 /* Maximum Idle time (no hcp) to wait for EE DISC REQ Ntf(s) */
514 #ifndef NFA_HCI_NETWK_INIT_IDLE_TIMEOUT
515 #define NFA_HCI_NETWK_INIT_IDLE_TIMEOUT 1000
516 #endif
517 
518 #ifndef NFA_HCI_MAX_HOST_IN_NETWORK
519 #define NFA_HCI_MAX_HOST_IN_NETWORK 0x06
520 #endif
521 
522 /* Max number of Application that can be registered to NFA-HCI */
523 #ifndef NFA_HCI_MAX_APP_CB
524 #define NFA_HCI_MAX_APP_CB 0x05
525 #endif
526 
527 /* Max number of HCI gates that can be created */
528 #ifndef NFA_HCI_MAX_GATE_CB
529 #define NFA_HCI_MAX_GATE_CB 0x06
530 #endif
531 
532 /* Max number of HCI pipes that can be created for the whole system */
533 #ifndef NFA_HCI_MAX_PIPE_CB
534 #define NFA_HCI_MAX_PIPE_CB 0x08
535 #endif
536 
537 /* Timeout for waiting for the response to HCP Command packet */
538 #ifndef NFA_HCI_RESPONSE_TIMEOUT
539 #define NFA_HCI_RESPONSE_TIMEOUT 1000
540 #endif
541 
542 /* Default poll duration (may be over-ridden using NFA_SetRfDiscoveryDuration)
543  */
544 #ifndef NFA_DM_DISC_DURATION_POLL
545 #define NFA_DM_DISC_DURATION_POLL 500 /* Android requires 500 */
546 #endif
547 
548 /* Automatic NDEF detection (when not in exclusive RF mode) */
549 #ifndef NFA_DM_AUTO_DETECT_NDEF
550 #define NFA_DM_AUTO_DETECT_NDEF FALSE /* !!!!! NFC-Android needs FALSE */
551 #endif
552 
553 /* Automatic NDEF read (when not in exclusive RF mode) */
554 #ifndef NFA_DM_AUTO_READ_NDEF
555 #define NFA_DM_AUTO_READ_NDEF FALSE /* !!!!! NFC-Android needs FALSE */
556 #endif
557 
558 /* Automatic NDEF presence check (when not in exclusive RF mode) */
559 #ifndef NFA_DM_AUTO_PRESENCE_CHECK
560 #define NFA_DM_AUTO_PRESENCE_CHECK FALSE /* Android requires FALSE */
561 #endif
562 
563 /* Presence check option: 0x01: use sleep/wake for none-NDEF ISO-DEP tags */
564 #ifndef NFA_DM_PRESENCE_CHECK_OPTION
565 /* !!!!! Android needs value 3 */
566 #define NFA_DM_PRESENCE_CHECK_OPTION 0x03
567 #endif
568 
569 /* Maximum time to wait for presence check response */
570 #ifndef NFA_DM_MAX_PRESENCE_CHECK_TIMEOUT
571 #define NFA_DM_MAX_PRESENCE_CHECK_TIMEOUT 500
572 #endif
573 
574 /* Default delay to auto presence check after sending raw frame */
575 #ifndef NFA_DM_DEFAULT_PRESENCE_CHECK_START_DELAY
576 #define NFA_DM_DEFAULT_PRESENCE_CHECK_START_DELAY 750
577 #endif
578 
579 /* Timeout for reactivation of Kovio bar code tag (presence check) */
580 #ifndef NFA_DM_DISC_TIMEOUT_KOVIO_PRESENCE_CHECK
581 #define NFA_DM_DISC_TIMEOUT_KOVIO_PRESENCE_CHECK (1000)
582 #endif
583 
584 /* Max number of NDEF type handlers that can be registered (including the
585  * default handler) */
586 #ifndef NFA_NDEF_MAX_HANDLERS
587 #define NFA_NDEF_MAX_HANDLERS 8
588 #endif
589 
590 /* Maximum number of listen entries configured/registered with
591  * NFA_CeConfigureUiccListenTech, */
592 /* NFA_CeRegisterFelicaSystemCodeOnDH, or NFA_CeRegisterT4tAidOnDH */
593 #ifndef NFA_CE_LISTEN_INFO_MAX
594 #define NFA_CE_LISTEN_INFO_MAX 5
595 #endif
596 
597 #ifndef NFA_SNEP_INCLUDED
598 /* Android must use FALSE to exclude SNEP */
599 #define NFA_SNEP_INCLUDED FALSE
600 #endif
601 
602 /* Max acceptable length */
603 #ifndef NFA_SNEP_DEFAULT_SERVER_MAX_NDEF_SIZE
604 #define NFA_SNEP_DEFAULT_SERVER_MAX_NDEF_SIZE 500000
605 #endif
606 
607 /* Max number of SNEP server/client and data link connection */
608 #ifndef NFA_SNEP_MAX_CONN
609 #define NFA_SNEP_MAX_CONN 6
610 #endif
611 
612 /* Max number data link connection of SNEP default server*/
613 #ifndef NFA_SNEP_DEFAULT_MAX_CONN
614 #define NFA_SNEP_DEFAULT_MAX_CONN 3
615 #endif
616 
617 /* MIU for SNEP              */
618 #ifndef NFA_SNEP_MIU
619 #define NFA_SNEP_MIU 1980 /* Modified for NFC-A */
620 #endif
621 
622 /* Receiving Window for SNEP */
623 #ifndef NFA_SNEP_RW
624 #define NFA_SNEP_RW 2 /* Modified for NFC-A */
625 #endif
626 
627 /* Max number of NFCEE supported */
628 #ifndef NFA_EE_MAX_EE_SUPPORTED
629 /* Modified for NFC-A until we add dynamic support */
630 #define NFA_EE_MAX_EE_SUPPORTED 4
631 #endif
632 
633 /* Maximum number of AID entries per target_handle  */
634 #ifndef NFA_EE_MAX_AID_ENTRIES
635 #define NFA_EE_MAX_AID_ENTRIES (32)
636 #endif
637 
638 /* Maximum number of callback functions can be registered through
639  * NFA_EeRegister() */
640 #ifndef NFA_EE_MAX_CBACKS
641 #define NFA_EE_MAX_CBACKS (3)
642 #endif
643 
644 #ifndef NFA_DTA_INCLUDED
645 #define NFA_DTA_INCLUDED TRUE
646 #endif
647 
648 /*****************************************************************************
649 **  Define HAL_WRITE depending on whether HAL is using shared GKI resources
650 **  as the NFC stack.
651 *****************************************************************************/
652 #ifndef HAL_WRITE
653 #define HAL_WRITE(p)                                            \
654   {                                                             \
655     nfc_cb.p_hal->write(p->len, (uint8_t*)(p + 1) + p->offset); \
656     GKI_freebuf(p);                                             \
657   }
658 
659 #ifdef NFC_HAL_SHARED_GKI
660 
661 /* NFC HAL Included if NFC_NFCEE_INCLUDED */
662 #if (NFC_NFCEE_INCLUDED == TRUE)
663 
664 #ifndef NFC_HAL_HCI_INCLUDED
665 #define NFC_HAL_HCI_INCLUDED TRUE
666 #endif
667 #else /* NFC_NFCEE_INCLUDED == TRUE */
668 #ifndef NFC_HAL_HCI_INCLUDED
669 #define NFC_HAL_HCI_INCLUDED FALSE
670 #endif
671 
672 #endif /* NFC_NFCEE_INCLUDED == FALSE */
673 
674 #endif /* NFC_HAL_SHARED_GKI */
675 
676 #endif /* HAL_WRITE */
677 
678 #endif /* NFC_TARGET_H */
679