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 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 251/* Maximum time to discover NFCEE */ 252#ifndef NFA_EE_DISCV_TIMEOUT_VAL 253#define NFA_EE_DISCV_TIMEOUT_VAL 2000 254#endif 255 256/* 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 278#define RW_T2T_TOUT_RESP 150 /* Android requires 150 instead of 100 for presence-check*/ 279#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 348 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 519/* 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 522#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 */ 544#ifndef NFA_HCI_RESPONSE_TIMEOUT 545#define NFA_HCI_RESPONSE_TIMEOUT 1000 546#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 563/* Automatic NDEF presence check (when not in exclusive RF mode) */ 564#ifndef NFA_DM_AUTO_PRESENCE_CHECK 565#define NFA_DM_AUTO_PRESENCE_CHECK FALSE /* Android requires FALSE */ 566#endif 567 568/* 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 578/* 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 583/* 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) 586#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 600#define NFA_CHO_INCLUDED FALSE /* Anddroid must use FALSE to exclude CHO */ 601#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 633#define NFA_SNEP_INCLUDED FALSE /* Android must use FALSE to exclude SNEP */ 634#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 663#define NFA_EE_MAX_EE_SUPPORTED 4 /* Modified for NFC-A until we add dynamic support */ 664#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 (32) 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 680 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 688#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 705 706 707#endif /* HAL_WRITE */ 708 709 710#endif /* NFC_TARGET_H */ 711 712 713 714