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