Android Hardware Abstraction Layer
nfc_target.h
Go to the documentation of this file.
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 3 /* 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