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