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 interface to NFCEE 22 * 23 ******************************************************************************/ 24 #ifndef NFA_EE_API_H 25 #define NFA_EE_API_H 26 27 #include "nfa_api.h" 28 #include "nfc_api.h" 29 #include "nfc_target.h" 30 31 /***************************************************************************** 32 ** Constants and data types 33 *****************************************************************************/ 34 /* 16 per ISO 7816 specification */ 35 #define NFA_MAX_AID_LEN NFC_MAX_AID_LEN 36 37 /* NFA EE callback events */ 38 enum { 39 NFA_EE_DISCOVER_EVT, /* The status for NFA_EeDiscover () */ 40 NFA_EE_REGISTER_EVT, /* The status for NFA_EeRegister () */ 41 NFA_EE_DEREGISTER_EVT, /* The status for NFA_EeDeregister () */ 42 NFA_EE_MODE_SET_EVT, /* The status for activating or deactivating an NFCEE */ 43 NFA_EE_ADD_AID_EVT, /* The status for adding an AID to a routing table entry 44 */ 45 NFA_EE_REMOVE_AID_EVT, /* The status for removing an AID from a routing table 46 */ 47 NFA_EE_ADD_SYSCODE_EVT, /* The status for adding an System Code to a routing 48 table entry */ 49 NFA_EE_REMOVE_SYSCODE_EVT, /* The status for removing an System Code from 50 routing table */ 51 NFA_EE_REMAINING_SIZE_EVT, /* The remaining size of the Listen Mode Routing 52 Table */ 53 NFA_EE_SET_TECH_CFG_EVT, /* The status for setting the routing based on RF 54 tech. */ 55 NFA_EE_CLEAR_TECH_CFG_EVT, /* The status for clearing the routing based on RF 56 tech. */ 57 58 NFA_EE_SET_PROTO_CFG_EVT, /* The status for setting the routing based on 59 protocols */ 60 NFA_EE_CLEAR_PROTO_CFG_EVT, /* The status for clearing the routing based on 61 protocols */ 62 63 NFA_EE_UPDATED_EVT, /* The status for NFA_EeUpdateNow */ 64 NFA_EE_CONNECT_EVT, /* Result of NFA_EeConnect */ 65 NFA_EE_DATA_EVT, /* Received data from NFCEE. */ 66 NFA_EE_DISCONNECT_EVT, /* NFCEE connection closed. */ 67 NFA_EE_NEW_EE_EVT, /* A new NFCEE is discovered */ 68 NFA_EE_ACTION_EVT, /* An action happened in NFCEE */ 69 NFA_EE_DISCOVER_REQ_EVT, /* NFCEE Discover Request Notification */ 70 NFA_EE_NO_MEM_ERR_EVT, /* Error - out of GKI buffers */ 71 NFA_EE_NO_CB_ERR_EVT /* Error - Can not find control block or wrong state */ 72 }; 73 typedef uint8_t tNFA_EE_EVT; 74 75 /* tNFA_NFCEE_INTERFACE values */ 76 /* HCI Access Interface*/ 77 #define NFA_EE_INTERFACE_HCI_ACCESS NFC_NFCEE_INTERFACE_HCI_ACCESS 78 typedef uint8_t tNFA_EE_INTERFACE; 79 80 typedef uint8_t tNFA_EE_TAG; 81 82 /* for NFA_EeModeSet () */ 83 #define NFA_EE_MD_ACTIVATE NFC_MODE_ACTIVATE 84 #define NFA_EE_MD_DEACTIVATE NFC_MODE_DEACTIVATE 85 typedef uint8_t tNFA_EE_MD; 86 87 /* The device is on */ 88 #define NFA_EE_PWR_STATE_ON 0x01 89 /* The device is switched off */ 90 #define NFA_EE_PWR_STATE_SWITCH_OFF 0x02 91 /* The device's battery is removed */ 92 #define NFA_EE_PWR_STATE_BATT_OFF 0x04 93 typedef uint8_t tNFA_EE_PWR_STATE; 94 95 /* NFCEE connected and inactive */ 96 #define NFA_EE_STATUS_INACTIVE NFC_NFCEE_STATUS_INACTIVE 97 /* NFCEE connected and active */ 98 #define NFA_EE_STATUS_ACTIVE NFC_NFCEE_STATUS_ACTIVE 99 /* NFCEE removed */ 100 #define NFA_EE_STATUS_REMOVED NFC_NFCEE_STATUS_REMOVED 101 /* waiting for response from NFCC */ 102 #define NFA_EE_STATUS_PENDING 0x10 103 typedef uint8_t tNFA_EE_STATUS; 104 105 /* additional NFCEE Info */ 106 typedef struct { 107 tNFA_EE_TAG tag; 108 uint8_t len; 109 uint8_t info[NFC_MAX_EE_INFO]; 110 } tNFA_EE_TLV; 111 112 typedef struct { 113 tNFA_HANDLE ee_handle; /* handle for NFCEE oe DH */ 114 tNFA_EE_STATUS ee_status; /* The NFCEE status */ 115 uint8_t num_interface; /* number of NFCEE interface*/ 116 tNFA_EE_INTERFACE 117 ee_interface[NFC_MAX_EE_INTERFACE]; /* NFCEE supported interface */ 118 uint8_t num_tlvs; /* number of TLVs */ 119 tNFA_EE_TLV ee_tlv[NFC_MAX_EE_TLVS]; /* the TLV */ 120 uint8_t ee_power_supply_status; /* The NFCEE Power supply */ 121 } tNFA_EE_INFO; 122 123 typedef struct { 124 tNFA_STATUS status; /* NFA_STATUS_OK is successful */ 125 uint8_t num_ee; /* number of NFCEEs found */ 126 tNFA_EE_INFO ee_info[NFA_EE_MAX_EE_SUPPORTED]; /*NFCEE information */ 127 } tNFA_EE_DISCOVER; 128 129 typedef struct { 130 tNFA_HANDLE ee_handle; /* Handle of NFCEE */ 131 tNFA_STATUS status; /* NFA_STATUS_OK is successful */ 132 tNFA_EE_INTERFACE 133 ee_interface; /* NFCEE interface associated with this connection */ 134 } tNFA_EE_CONNECT; 135 136 typedef tNFC_EE_TRIGGER tNFA_EE_TRIGGER; 137 138 /* Union of NFCEE action parameter depending on the associated trigger */ 139 typedef union { 140 tNFA_NFC_PROTOCOL protocol; /* NFA_EE_TRGR_RF_PROTOCOL: the protocol that 141 triggers this event */ 142 tNFC_RF_TECH technology; /* NFA_EE_TRGR_RF_TECHNOLOGY:the technology that 143 triggers this event */ 144 tNFC_AID aid; /* NFA_EE_TRGR_SELECT : the AID in the received SELECT AID 145 command */ 146 tNFC_APP_INIT app_init; /* NFA_EE_TRGR_APP_INIT: The information for the 147 application initiated trigger */ 148 } tNFA_EE_ACTION_PARAM; 149 150 typedef struct { 151 tNFA_HANDLE ee_handle; /* Handle of NFCEE */ 152 tNFA_EE_TRIGGER trigger; /* the trigger of this event */ 153 tNFA_EE_ACTION_PARAM param; 154 } tNFA_EE_ACTION; 155 156 typedef struct { 157 tNFA_HANDLE ee_handle; /* Handle of NFCEE */ 158 tNFA_STATUS status; /* NFA_STATUS_OK is successful */ 159 tNFA_EE_STATUS ee_status; /* The NFCEE status */ 160 } tNFA_EE_MODE_SET; 161 162 typedef struct { 163 tNFA_HANDLE ee_handle; /* Handle of MFCEE */ 164 tNFA_NFC_PROTOCOL la_protocol; /* Listen A protocol */ 165 tNFA_NFC_PROTOCOL lb_protocol; /* Listen B protocol */ 166 tNFA_NFC_PROTOCOL lf_protocol; /* Listen F protocol */ 167 tNFA_NFC_PROTOCOL lbp_protocol; /* Listen B' protocol */ 168 } tNFA_EE_DISCOVER_INFO; 169 170 /* Data for NFA_EE_DISCOVER_REQ_EVT */ 171 typedef struct { 172 uint8_t status; /* NFA_STATUS_OK if successful */ 173 uint8_t num_ee; /* number of MFCEE information */ 174 tNFA_EE_DISCOVER_INFO ee_disc_info[NFA_EE_MAX_EE_SUPPORTED - 175 1]; /* NFCEE DISCOVER Request info */ 176 } tNFA_EE_DISCOVER_REQ; 177 178 /* Data for NFA_EE_DATA_EVT */ 179 typedef struct { 180 tNFA_HANDLE handle; /* Connection handle */ 181 uint16_t len; /* Length of data */ 182 uint8_t* p_buf; /* Data buffer */ 183 } tNFA_EE_DATA; 184 185 /* Union of all EE callback structures */ 186 typedef union { 187 tNFA_STATUS 188 status; /* NFA_STATUS_OK is successful; otherwise NFA_STATUS_FAILED */ 189 tNFA_EE_DATA data; 190 tNFA_HANDLE handle; 191 tNFA_EE_DISCOVER ee_discover; 192 tNFA_STATUS ee_register; 193 tNFA_STATUS deregister; 194 tNFA_STATUS add_aid; 195 tNFA_STATUS remove_aid; 196 tNFA_STATUS add_sc; 197 tNFA_STATUS remove_sc; 198 tNFA_STATUS set_tech; 199 tNFA_STATUS clear_tech; 200 tNFA_STATUS set_proto; 201 tNFA_STATUS clear_proto; 202 uint16_t size; 203 tNFA_EE_CONNECT connect; 204 tNFA_EE_ACTION action; 205 tNFA_EE_MODE_SET mode_set; 206 tNFA_EE_INFO new_ee; 207 tNFA_EE_DISCOVER_REQ discover_req; 208 } tNFA_EE_CBACK_DATA; 209 210 /* EE callback */ 211 typedef void(tNFA_EE_CBACK)(tNFA_EE_EVT event, tNFA_EE_CBACK_DATA* p_data); 212 213 /***************************************************************************** 214 ** External Function Declarations 215 *****************************************************************************/ 216 217 /******************************************************************************* 218 ** 219 ** Function NFA_EeDiscover 220 ** 221 ** Description This function retrieves the NFCEE information from NFCC. 222 ** The NFCEE information is reported in NFA_EE_DISCOVER_EVT. 223 ** 224 ** This function may be called when a system supports removable 225 ** NFCEEs, 226 ** 227 ** Returns NFA_STATUS_OK if information is retrieved successfully 228 ** NFA_STATUS_FAILED If wrong state (retry later) 229 ** NFA_STATUS_INVALID_PARAM If bad parameter 230 ** 231 *******************************************************************************/ 232 extern tNFA_STATUS NFA_EeDiscover(tNFA_EE_CBACK* p_cback); 233 234 /******************************************************************************* 235 ** 236 ** Function NFA_EeGetInfo 237 ** 238 ** Description This function retrieves the NFCEE information from NFA. 239 ** The actual number of NFCEE is returned in p_num_nfcee 240 ** and NFCEE information is returned in p_info 241 ** 242 ** Returns NFA_STATUS_OK if information is retrieved successfully 243 ** NFA_STATUS_FAILED If wrong state (retry later) 244 ** NFA_STATUS_INVALID_PARAM If bad parameter 245 ** 246 *******************************************************************************/ 247 extern tNFA_STATUS NFA_EeGetInfo(uint8_t* p_num_nfcee, tNFA_EE_INFO* p_info); 248 249 /******************************************************************************* 250 ** 251 ** Function NFA_EeRegister 252 ** 253 ** Description This function registers a callback function to receive the 254 ** events from NFA-EE module. 255 ** 256 ** Returns NFA_STATUS_OK if successfully initiated 257 ** NFA_STATUS_FAILED otherwise 258 ** NFA_STATUS_INVALID_PARAM If bad parameter 259 ** 260 *******************************************************************************/ 261 extern tNFA_STATUS NFA_EeRegister(tNFA_EE_CBACK* p_cback); 262 263 /******************************************************************************* 264 ** 265 ** Function NFA_EeDeregister 266 ** 267 ** Description This function de-registers the callback function 268 ** 269 ** Returns NFA_STATUS_OK if successfully initiated 270 ** NFA_STATUS_FAILED otherwise 271 ** NFA_STATUS_INVALID_PARAM If bad parameter 272 ** 273 *******************************************************************************/ 274 extern tNFA_STATUS NFA_EeDeregister(tNFA_EE_CBACK* p_cback); 275 276 /******************************************************************************* 277 ** 278 ** Function NFA_EeModeSet 279 ** 280 ** Description This function is called to activate 281 ** (mode = NFA_EE_MD_ACTIVATE) or deactivate 282 ** (mode = NFA_EE_MD_DEACTIVATE) the NFCEE identified by the 283 ** given ee_handle. The result of this operation is reported 284 ** with the NFA_EE_MODE_SET_EVT. 285 ** 286 ** Returns NFA_STATUS_OK if successfully initiated 287 ** NFA_STATUS_FAILED otherwise 288 ** NFA_STATUS_INVALID_PARAM If bad parameter 289 ** 290 *******************************************************************************/ 291 extern tNFA_STATUS NFA_EeModeSet(tNFA_HANDLE ee_handle, tNFA_EE_MD mode); 292 293 /******************************************************************************* 294 ** 295 ** Function NFA_EeSetDefaultTechRouting 296 ** 297 ** Description This function is called to add, change or remove the 298 ** default routing based on RF technology in the listen mode 299 ** routing table for the given ee_handle. The status of this 300 ** operation is reported as the NFA_EE_SET_TECH_CFG_EVT. 301 ** 302 ** Note: If RF discovery is started, 303 ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 304 ** happen before calling this function 305 ** 306 ** Note: NFA_EeUpdateNow() should be called after last NFA-EE 307 ** function to change the listen mode routing is called. 308 ** 309 ** Returns NFA_STATUS_OK if successfully initiated 310 ** NFA_STATUS_FAILED otherwise 311 ** NFA_STATUS_INVALID_PARAM If bad parameter 312 ** 313 *******************************************************************************/ 314 extern tNFA_STATUS NFA_EeSetDefaultTechRouting( 315 tNFA_HANDLE ee_handle, tNFA_TECHNOLOGY_MASK technologies_switch_on, 316 tNFA_TECHNOLOGY_MASK technologies_switch_off, 317 tNFA_TECHNOLOGY_MASK technologies_battery_off, 318 tNFA_TECHNOLOGY_MASK technologies_screen_lock, 319 tNFA_TECHNOLOGY_MASK technologies_screen_off, 320 tNFA_TECHNOLOGY_MASK technologies_screen_off_lock); 321 322 /******************************************************************************* 323 ** 324 ** Function NFA_EeClearDefaultTechRouting 325 ** 326 ** Description This function is called to remove the 327 ** default routing based on RF technology in the listen mode 328 ** routing table for the given ee_handle. The status of this 329 ** operation is reported as the NFA_EE_CLEAR_TECH_CFG_EVT. 330 ** 331 ** Note: If RF discovery is started, 332 ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 333 ** happen before calling this function 334 ** 335 ** Note: NFA_EeUpdateNow() should be called after last NFA-EE 336 ** function to change the listen mode routing is called. 337 ** 338 ** Returns NFA_STATUS_OK if successfully initiated 339 ** NFA_STATUS_FAILED otherwise 340 ** NFA_STATUS_INVALID_PARAM If bad parameter 341 ** 342 *******************************************************************************/ 343 extern tNFA_STATUS NFA_EeClearDefaultTechRouting( 344 tNFA_HANDLE ee_handle, tNFA_TECHNOLOGY_MASK clear_technology); 345 346 /******************************************************************************* 347 ** 348 ** Function NFA_EeSetDefaultProtoRouting 349 ** 350 ** Description This function is called to add, change or remove the 351 ** default routing based on Protocol in the listen mode routing 352 ** table for the given ee_handle. The status of this 353 ** operation is reported as the NFA_EE_SET_PROTO_CFG_EVT. 354 ** 355 ** Note: If RF discovery is started, 356 ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 357 ** happen before calling this function 358 ** 359 ** Note: NFA_EeUpdateNow() should be called after last NFA-EE 360 ** function to change the listen mode routing is called. 361 ** 362 ** Returns NFA_STATUS_OK if successfully initiated 363 ** NFA_STATUS_FAILED otherwise 364 ** NFA_STATUS_INVALID_PARAM If bad parameter 365 ** 366 *******************************************************************************/ 367 extern tNFA_STATUS NFA_EeSetDefaultProtoRouting( 368 tNFA_HANDLE ee_handle, tNFA_PROTOCOL_MASK protocols_switch_on, 369 tNFA_PROTOCOL_MASK protocols_switch_off, 370 tNFA_PROTOCOL_MASK protocols_battery_off, 371 tNFA_PROTOCOL_MASK technologies_screen_lock, 372 tNFA_PROTOCOL_MASK technologies_screen_off, 373 tNFA_PROTOCOL_MASK technologies_screen_off_lock); 374 375 /******************************************************************************* 376 ** 377 ** Function NFA_EeClearDefaultProtoRouting 378 ** 379 ** Description This function is called remove the 380 ** default routing based on Protocol in the listen mode routing 381 ** table for the given ee_handle. The status of this 382 ** operation is reported as the NFA_EE_CLEAR_PROTO_CFG_EVT. 383 ** 384 ** Note: If RF discovery is started, 385 ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 386 ** happen before calling this function 387 ** 388 ** Note: NFA_EeUpdateNow() should be called after last NFA-EE 389 ** function to change the listen mode routing is called. 390 ** 391 ** Returns NFA_STATUS_OK if successfully initiated 392 ** NFA_STATUS_FAILED otherwise 393 ** NFA_STATUS_INVALID_PARAM If bad parameter 394 ** 395 *******************************************************************************/ 396 extern tNFA_STATUS NFA_EeClearDefaultProtoRouting( 397 tNFA_HANDLE ee_handle, tNFA_PROTOCOL_MASK clear_protocol); 398 399 /******************************************************************************* 400 ** 401 ** Function NFA_EeAddAidRouting 402 ** 403 ** Description This function is called to add an AID entry in the 404 ** listen mode routing table in NFCC. The status of this 405 ** operation is reported as the NFA_EE_ADD_AID_EVT. 406 ** 407 ** Note: If RF discovery is started, 408 ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 409 ** happen before calling this function 410 ** 411 ** Note: NFA_EeUpdateNow() should be called after last NFA-EE 412 ** function to change the listen mode routing is called. 413 ** 414 ** Returns NFA_STATUS_OK if successfully initiated 415 ** NFA_STATUS_FAILED otherwise 416 ** NFA_STATUS_INVALID_PARAM If bad parameter 417 ** 418 *******************************************************************************/ 419 extern tNFA_STATUS NFA_EeAddAidRouting(tNFA_HANDLE ee_handle, uint8_t aid_len, 420 uint8_t* p_aid, 421 tNFA_EE_PWR_STATE power_state, 422 uint8_t aidInfo); 423 424 /******************************************************************************* 425 ** 426 ** Function NFA_EeRemoveAidRouting 427 ** 428 ** Description This function is called to remove the given AID entry from 429 ** the listen mode routing table. If the entry configures VS, 430 ** it is also removed. The status of this operation is reported 431 ** as the NFA_EE_REMOVE_AID_EVT. 432 ** 433 ** Note: If RF discovery is started, 434 ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 435 ** happen before calling this function 436 ** 437 ** Note: NFA_EeUpdateNow() should be called after last NFA-EE 438 ** function to change the listen mode routing is called. 439 ** 440 ** Returns NFA_STATUS_OK if successfully initiated 441 ** NFA_STATUS_FAILED otherwise 442 ** NFA_STATUS_INVALID_PARAM If bad parameter 443 ** 444 *******************************************************************************/ 445 extern tNFA_STATUS NFA_EeRemoveAidRouting(uint8_t aid_len, uint8_t* p_aid); 446 447 /******************************************************************************* 448 ** 449 ** Function NFA_EeAddSystemCodeRouting 450 ** 451 ** Description This function is called to add an system code entry in the 452 ** listen mode routing table in NFCC. The status of this 453 ** operation is reported as the NFA_EE_ADD_SYSCODE_EVT. 454 ** 455 ** Note: If RF discovery is started, 456 ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 457 ** happen before calling this function 458 ** 459 ** Note: NFA_EeUpdateNow() should be called after last NFA-EE 460 ** function to change the listen mode routing is called. 461 ** 462 ** Returns NFA_STATUS_OK if successfully initiated 463 ** NFA_STATUS_FAILED otherwise 464 ** NFA_STATUS_INVALID_PARAM If bad parameter 465 ** 466 *******************************************************************************/ 467 extern tNFA_STATUS NFA_EeAddSystemCodeRouting(uint16_t systemcode, 468 tNFA_HANDLE ee_handle, 469 tNFA_EE_PWR_STATE power_state); 470 471 /******************************************************************************* 472 ** 473 ** Function NFA_EeRemoveSystemCodeRouting 474 ** 475 ** Description This function is called to remove the given System Code 476 *based entry from 477 ** the listen mode routing table. The status of this operation 478 *is reported 479 ** as the NFA_EE_REMOVE_SYSCODE_EVT. 480 ** 481 ** Note: If RF discovery is started, 482 ** NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT should 483 ** happen before calling this function 484 ** 485 ** Note: NFA_EeUpdateNow() should be called after last NFA-EE 486 ** function to change the listen mode routing is called. 487 ** 488 ** Returns NFA_STATUS_OK if successfully initiated 489 ** NFA_STATUS_FAILED otherwise 490 ** NFA_STATUS_INVALID_PARAM If bad parameter 491 ** 492 *******************************************************************************/ 493 extern tNFA_STATUS NFA_EeRemoveSystemCodeRouting(uint16_t systemcode); 494 495 /******************************************************************************* 496 ** 497 ** Function NFA_GetAidTableSize 498 ** 499 ** Description This function is called to get the AID routing table size. 500 ** 501 ** Returns Maximum AID routing table size. 502 ** 503 *******************************************************************************/ 504 extern uint16_t NFA_GetAidTableSize(); 505 506 /******************************************************************************* 507 ** 508 ** Function NFA_EeGetLmrtRemainingSize 509 ** 510 ** Description This function is called to get remaining size of the 511 ** Listen Mode Routing Table. 512 ** The remaining size is reported in NFA_EE_REMAINING_SIZE_EVT 513 ** 514 ** Returns NFA_STATUS_OK if successfully initiated 515 ** NFA_STATUS_FAILED otherwise 516 ** 517 *******************************************************************************/ 518 extern tNFA_STATUS NFA_EeGetLmrtRemainingSize(void); 519 520 /******************************************************************************* 521 ** 522 ** Function NFA_EeUpdateNow 523 ** 524 ** Description This function is called to send the current listen mode 525 ** routing table and VS configuration to the NFCC (without 526 ** waiting for NFA_EE_ROUT_TIMEOUT_VAL). 527 ** 528 ** The status of this operation is 529 ** reported with the NFA_EE_UPDATED_EVT. 530 ** 531 ** Returns NFA_STATUS_OK if successfully initiated 532 ** NFA_STATUS_SEMANTIC_ERROR is update is currently in progress 533 ** NFA_STATUS_FAILED otherwise 534 ** 535 *******************************************************************************/ 536 extern tNFA_STATUS NFA_EeUpdateNow(void); 537 538 /******************************************************************************* 539 ** 540 ** Function NFA_EeConnect 541 ** 542 ** Description Open connection to an NFCEE attached to the NFCC 543 ** 544 ** The status of this operation is 545 ** reported with the NFA_EE_CONNECT_EVT. 546 ** 547 ** Returns NFA_STATUS_OK if successfully initiated 548 ** NFA_STATUS_FAILED otherwise 549 ** NFA_STATUS_INVALID_PARAM If bad parameter 550 ** 551 *******************************************************************************/ 552 extern tNFA_STATUS NFA_EeConnect(tNFA_HANDLE ee_handle, uint8_t ee_interface, 553 tNFA_EE_CBACK* p_cback); 554 555 /******************************************************************************* 556 ** 557 ** Function NFA_EeSendData 558 ** 559 ** Description Send data to the given NFCEE. 560 ** This function shall be called after NFA_EE_CONNECT_EVT is 561 ** reported and before NFA_EeDisconnect is called on the given 562 ** ee_handle. 563 ** 564 ** Returns NFA_STATUS_OK if successfully initiated 565 ** NFA_STATUS_FAILED otherwise 566 ** NFA_STATUS_INVALID_PARAM If bad parameter 567 ** 568 *******************************************************************************/ 569 extern tNFA_STATUS NFA_EeSendData(tNFA_HANDLE ee_handle, uint16_t data_len, 570 uint8_t* p_data); 571 572 /******************************************************************************* 573 ** 574 ** Function NFA_EeDisconnect 575 ** 576 ** Description Disconnect (if a connection is currently open) from an 577 ** NFCEE interface. The result of this operation is reported 578 ** with the NFA_EE_DISCONNECT_EVT. 579 ** 580 ** Returns NFA_STATUS_OK if successfully initiated 581 ** NFA_STATUS_FAILED otherwise 582 ** NFA_STATUS_INVALID_PARAM If bad parameter 583 ** 584 *******************************************************************************/ 585 extern tNFA_STATUS NFA_EeDisconnect(tNFA_HANDLE ee_handle); 586 587 #endif /* NFA_EE_API_H */ 588