Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2010-2014 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 
     20 /******************************************************************************
     21  *
     22  *  NFA card emulation API functions
     23  *
     24  ******************************************************************************/
     25 #ifndef NFA_CE_API_H
     26 #define NFA_CE_API_H
     27 
     28 #include "nfc_target.h"
     29 #include "nfa_api.h"
     30 
     31 /*****************************************************************************
     32 **  Constants and data types
     33 *****************************************************************************/
     34 
     35 /*****************************************************************************
     36 **  External Function Declarations
     37 *****************************************************************************/
     38 #ifdef __cplusplus
     39 extern "C"
     40 {
     41 #endif
     42 
     43 /*******************************************************************************
     44 **
     45 ** Function         NFA_CeConfigureLocalTag
     46 **
     47 ** Description      Configure local NDEF tag.
     48 **
     49 **                  Tag events will be notifed using the tNFA_CONN_CBACK
     50 **                  (registered during NFA_Enable)
     51 **
     52 **                  The NFA_CE_LOCAL_TAG_CONFIGURED_EVT reports the status of the
     53 **                  operation.
     54 **
     55 **                  Activation and deactivation are reported using the
     56 **                  NFA_ACTIVATED_EVT and NFA_DEACTIVATED_EVT events
     57 **
     58 **                  If a write-request is received to update the tag memory,
     59 **                  an NFA_CE_NDEF_WRITE_CPLT_EVT will notify the application, along
     60 **                  with a buffer containing the updated contents.
     61 **
     62 **                  To disable the local NDEF tag, set protocol_mask=0
     63 **
     64 **                  The NDEF data provided by p_ndef_data must be persistent
     65 **                  as long as the local NDEF tag is enabled. Also, Input parameters p_uid and
     66 **                  uid_len are reserved for future use.
     67 **
     68 **
     69 ** Note:            If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT
     70 **                  should happen before calling this function.
     71 **
     72 ** Returns:
     73 **                  NFA_STATUS_OK,            if command accepted
     74 **                  NFA_STATUS_INVALID_PARAM,
     75 **                      if protocol_maks is not 0 and p_ndef_data is NULL
     76 **                  (or) uid_len is not 0
     77 **                  (or) if protocol mask is set for Type 1 or Type 2
     78 **
     79 **                  NFA_STATUS_FAILED:        otherwise
     80 **
     81 *******************************************************************************/
     82 NFC_API extern tNFA_STATUS NFA_CeConfigureLocalTag (tNFA_PROTOCOL_MASK protocol_mask,
     83                                                     UINT8     *p_ndef_data,
     84                                                     UINT16    ndef_cur_size,
     85                                                     UINT16    ndef_max_size,
     86                                                     BOOLEAN   read_only,
     87                                                     UINT8     uid_len,
     88                                                     UINT8     *p_uid);
     89 
     90 /*******************************************************************************
     91 **
     92 ** Function         NFA_CeConfigureUiccListenTech
     93 **
     94 ** Description      Configure listening for the UICC, using the specified
     95 **                  technologies.
     96 **
     97 **                  Events will be notifed using the tNFA_CONN_CBACK
     98 **                  (registered during NFA_Enable)
     99 **
    100 **                  The NFA_CE_UICC_LISTEN_CONFIGURED_EVT reports the status of the
    101 **                  operation.
    102 **
    103 **                  Activation and deactivation are reported using the
    104 **                  NFA_ACTIVATED_EVT and NFA_DEACTIVATED_EVT events
    105 **
    106 ** Note:            If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT
    107 **                  should happen before calling this function
    108 **
    109 ** Returns:
    110 **                  NFA_STATUS_OK, if command accepted
    111 **                  NFA_STATUS_FAILED: otherwise
    112 **
    113 *******************************************************************************/
    114 NFC_API extern tNFA_STATUS NFA_CeConfigureUiccListenTech (tNFA_HANDLE          ee_handle,
    115                                                           tNFA_TECHNOLOGY_MASK tech_mask);
    116 
    117 /*******************************************************************************
    118 **
    119 ** Function         NFA_CeRegisterFelicaSystemCodeOnDH
    120 **
    121 ** Description      Register listening callback for Felica system code
    122 **
    123 **                  The NFA_CE_REGISTERED_EVT reports the status of the
    124 **                  operation.
    125 **
    126 ** Note:            If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT
    127 **                  should happen before calling this function
    128 **
    129 ** Returns:
    130 **                  NFA_STATUS_OK, if command accepted
    131 **                  NFA_STATUS_FAILED: otherwise
    132 **
    133 *******************************************************************************/
    134 NFC_API extern tNFA_STATUS NFA_CeRegisterFelicaSystemCodeOnDH (UINT16           system_code,
    135                                                                UINT8            nfcid2[NCI_RF_F_UID_LEN],
    136                                                                tNFA_CONN_CBACK  *p_conn_cback);
    137 
    138 /*******************************************************************************
    139 **
    140 ** Function         NFA_CeDeregisterFelicaSystemCodeOnDH
    141 **
    142 ** Description      Deregister listening callback for Felica
    143 **                  (previously registered using NFA_CeRegisterFelicaSystemCodeOnDH)
    144 **
    145 **                  The NFA_CE_DEREGISTERED_EVT reports the status of the
    146 **                  operation.
    147 **
    148 ** Note:            If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT
    149 **                  should happen before calling this function
    150 **
    151 ** Returns          NFA_STATUS_OK if successfully initiated
    152 **                  NFA_STATUS_BAD_HANDLE if invalid handle
    153 **                  NFA_STATUS_FAILED otherwise
    154 **
    155 *******************************************************************************/
    156 NFC_API extern tNFA_STATUS NFA_CeDeregisterFelicaSystemCodeOnDH (tNFA_HANDLE handle);
    157 
    158 /*******************************************************************************
    159 **
    160 ** Function         NFA_CeRegisterAidOnDH
    161 **
    162 ** Description      Register listening callback for the specified ISODEP AID
    163 **
    164 **                  The NFA_CE_REGISTERED_EVT reports the status of the
    165 **                  operation.
    166 **
    167 **                  If no AID is specified (aid_len=0), then p_conn_cback will
    168 **                  will get notifications for any AIDs routed to the DH. This
    169 **                  over-rides callbacks registered for specific AIDs.
    170 **
    171 ** Note:            If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT
    172 **                  should happen before calling this function
    173 **
    174 ** Returns:
    175 **                  NFA_STATUS_OK, if command accepted
    176 **                  NFA_STATUS_FAILED: otherwise
    177 **
    178 *******************************************************************************/
    179 NFC_API extern tNFA_STATUS NFA_CeRegisterAidOnDH (UINT8           aid[NFC_MAX_AID_LEN],
    180                                                   UINT8           aid_len,
    181                                                   tNFA_CONN_CBACK *p_conn_cback);
    182 
    183 /*******************************************************************************
    184 **
    185 ** Function         NFA_CeDeregisterAidOnDH
    186 **
    187 ** Description      Deregister listening callback for ISODEP AID
    188 **                  (previously registered using NFA_CeRegisterAidOnDH)
    189 **
    190 **                  The NFA_CE_DEREGISTERED_EVT reports the status of the
    191 **                  operation.
    192 **
    193 ** Note:            If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT
    194 **                  should happen before calling this function
    195 **
    196 ** Returns          NFA_STATUS_OK if successfully initiated
    197 **                  NFA_STATUS_BAD_HANDLE if invalid handle
    198 **                  NFA_STATUS_FAILED otherwise
    199 **
    200 *******************************************************************************/
    201 NFC_API extern tNFA_STATUS NFA_CeDeregisterAidOnDH (tNFA_HANDLE handle);
    202 
    203 /*******************************************************************************
    204 **
    205 ** Function         NFA_CeSetIsoDepListenTech
    206 **
    207 ** Description      Set the technologies (NFC-A and/or NFC-B) to listen for when
    208 **                  NFA_CeConfigureLocalTag or NFA_CeDeregisterAidOnDH are called.
    209 **
    210 **                  By default (if this API is not called), NFA will listen
    211 **                  for both NFC-A and NFC-B for ISODEP.
    212 **
    213 ** Note:            If listening for ISODEP on UICC, the DH listen callbacks
    214 **                  may still get activate notifications for ISODEP if the reader/
    215 **                  writer selects an AID that is not routed to the UICC (regardless
    216 **                  of whether A or B was disabled using NFA_CeSetIsoDepListenTech)
    217 **
    218 ** Note:            If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT
    219 **                  should happen before calling this function
    220 **
    221 ** Returns:
    222 **                  NFA_STATUS_OK, if command accepted
    223 **                  NFA_STATUS_FAILED: otherwise
    224 **
    225 *******************************************************************************/
    226 NFC_API extern tNFA_STATUS NFA_CeSetIsoDepListenTech (tNFA_TECHNOLOGY_MASK tech_mask);
    227 
    228 #ifdef __cplusplus
    229 }
    230 #endif
    231 
    232 #endif /* NFA_CE_API_H */
    233