Home | History | Annotate | Download | only in include
      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 
    689