1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 35c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen * Copyright (C) 2010-2013 Broadcom Corporation 4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * you may not use this file except in compliance with the License. 7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * You may obtain a copy of the License at: 8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * See the License for the specific language governing permissions and 15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * limitations under the License. 16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 195c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * NFA interface to NFCEE 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_EE_API_H 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_API_H 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfc_target.h" 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_api.h" 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfc_api.h" 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Constants and data types 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_MAX_AID_LEN NFC_MAX_AID_LEN /* 16 per ISO 7816 specification */ 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_HANDLE_DH (NFA_HANDLE_GROUP_EE|NFC_DH_ID) 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA EE callback events */ 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_DISCOVER_EVT, /* The status for NFA_EeDiscover () */ 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_REGISTER_EVT, /* The status for NFA_EeRegister () */ 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_DEREGISTER_EVT, /* The status for NFA_EeDeregister () */ 44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_MODE_SET_EVT, /* The status for activating or deactivating an NFCEE */ 45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_ADD_AID_EVT, /* The status for adding an AID to a routing table entry */ 46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_REMOVE_AID_EVT, /* The status for removing an AID from a routing table */ 47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_SET_TECH_CFG_EVT, /* The status for setting the routing based on RF tech. */ 48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_SET_PROTO_CFG_EVT, /* The status for setting the routing based on protocols */ 49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_CONNECT_EVT, /* Result of NFA_EeConnect */ 50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_DATA_EVT, /* Received data from NFCEE. */ 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_DISCONNECT_EVT, /* NFCEE connection closed. */ 52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_NEW_EE_EVT, /* A new NFCEE is discovered */ 53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_ACTION_EVT, /* An action happened in NFCEE */ 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_DISCOVER_REQ_EVT, /* NFCEE Discover Request Notification */ 55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_ROUT_ERR_EVT, /* Error - exceed NFCC CE Routing size */ 56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_NO_MEM_ERR_EVT, /* Error - out of GKI buffers */ 57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project NFA_EE_NO_CB_ERR_EVT /* Error - Can not find control block or wrong state */ 58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_EE_EVT; 60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* tNFA_NFCEE_INTERFACE values */ 62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_INTERFACE_APDU NFC_NFCEE_INTERFACE_APDU /* APDU Interface */ 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_INTERFACE_HCI_ACCESS NFC_NFCEE_INTERFACE_HCI_ACCESS /* HCI Access Interface*/ 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_INTERFACE_T3T NFC_NFCEE_INTERFACE_T3T /* T3T Command Interface*/ 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_INTERFACE_TRANSPARENT NFC_NFCEE_INTERFACE_TRANSPARENT /* Transparent Interface*/ 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_INTERFACE_PROPRIETARY NFC_NFCEE_INTERFACE_PROPRIETARY /* Proprietary */ 67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_EE_INTERFACE; 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_TAG_HW_ID NFC_NFCEE_TAG_HW_ID /* HW/Registration ID */ 70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_TAG_ATR_BYTES NFC_NFCEE_TAG_ATR_BYTES /* ATR Bytes */ 71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_TAG_T3T_INFO NFC_NFCEE_TAG_T3T_INFO /* T3T Supplement. Info */ 72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_TAG_HCI_HOST_ID NFC_NFCEE_TAG_HCI_HOST_ID /* Broadcom Proprietary */ 73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_EE_TAG; 74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* for NFA_EeModeSet () */ 76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_MD_ACTIVATE NFC_MODE_ACTIVATE 77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_MD_DEACTIVATE NFC_MODE_DEACTIVATE 78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_EE_MD; 79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_PWR_STATE_ON 0x01 /* The device is on */ 81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_PWR_STATE_SWITCH_OFF 0x02 /* The device is switched off */ 82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_PWR_STATE_BATT_OFF 0x04 /* The device's battery is removed */ 83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_PWR_STATE_NONE 0 /* used to remove a particular technology or protocol based routing cfg of a handle from the routing table. */ 84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_EE_PWR_STATE; 85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_STATUS_INACTIVE NFC_NFCEE_STATUS_INACTIVE /* NFCEE connected and inactive */ 88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_STATUS_ACTIVE NFC_NFCEE_STATUS_ACTIVE /* NFCEE connected and active */ 89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_STATUS_REMOVED NFC_NFCEE_STATUS_REMOVED /* NFCEE removed */ 90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_STATUS_PENDING 0x10 /* waiting for response from NFCC */ 91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_STATUS_ACTIVATING (NFA_EE_STATUS_PENDING+NFC_NFCEE_STATUS_ACTIVE) 92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_STATUS_DEACTIVATING (NFA_EE_STATUS_PENDING+NFC_NFCEE_STATUS_INACTIVE) 93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_EE_STATUS; 94e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* additional NFCEE Info */ 98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_TAG tag; 101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 len; 102e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 info[NFC_MAX_EE_INFO]; 103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_TLV; 104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 105e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_HANDLE ee_handle; /* handle for NFCEE oe DH */ 108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_STATUS ee_status; /* The NFCEE status */ 109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 num_interface; /* number of NFCEE interface*/ 110e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_INTERFACE ee_interface[NFC_MAX_EE_INTERFACE];/* NFCEE supported interface */ 111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 num_tlvs; /* number of TLVs */ 112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_TLV ee_tlv[NFC_MAX_EE_TLVS];/* the TLV */ 113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_INFO; 114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS status; /* NFA_STATUS_OK is successful */ 120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 num_ee; /* number of NFCEEs found */ 121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_INFO ee_info[NFA_EE_MAX_EE_SUPPORTED];/*NFCEE information */ 122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_DISCOVER; 123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_HANDLE ee_handle; /* Handle of NFCEE */ 127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS status; /* NFA_STATUS_OK is successful */ 128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_INTERFACE ee_interface; /* NFCEE interface associated with this connection */ 129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_CONNECT; 130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_TRGR_SELECT NFC_EE_TRIG_7816_SELECT /* ISO 7816-4 SELECT command */ 132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_TRGR_RF_PROTOCOL NFC_EE_TRIG_RF_PROTOCOL /* RF Protocol changed */ 133e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_TRGR_RF_TECHNOLOGY NFC_EE_TRIG_RF_TECHNOLOGY/* RF Technology changed */ 134e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_EE_TRGR_APP_INIT NFC_EE_TRIG_APP_INIT /* Application initiation */ 135e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef tNFC_EE_TRIGGER tNFA_EE_TRIGGER; 136e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 137e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Union of NFCEE action parameter depending on the associated trigger */ 138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef union 139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_NFC_PROTOCOL protocol; /* NFA_EE_TRGR_RF_PROTOCOL: the protocol that triggers this event */ 141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_RF_TECH technology; /* NFA_EE_TRGR_RF_TECHNOLOGY:the technology that triggers this event */ 142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_AID aid; /* NFA_EE_TRGR_SELECT : the AID in the received SELECT AID command */ 143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_APP_INIT app_init; /* NFA_EE_TRGR_APP_INIT: The information for the application initiated trigger */ 144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_ACTION_PARAM; 145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_HANDLE ee_handle; /* Handle of NFCEE */ 149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_TRIGGER trigger; /* the trigger of this event */ 150e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_ACTION_PARAM param; 151e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_ACTION; 152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_HANDLE ee_handle; /* Handle of NFCEE */ 156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS status; /* NFA_STATUS_OK is successful */ 157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_STATUS ee_status; /* The NFCEE status */ 158e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_MODE_SET; 159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 161e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_HANDLE ee_handle; /* Handle of MFCEE */ 163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_NFC_PROTOCOL la_protocol; /* Listen A protocol */ 164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_NFC_PROTOCOL lb_protocol; /* Listen B protocol */ 165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_NFC_PROTOCOL lf_protocol; /* Listen F protocol */ 166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_NFC_PROTOCOL lbp_protocol; /* Listen B' protocol */ 167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_DISCOVER_INFO; 168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_EE_DISCOVER_REQ_EVT */ 170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 status; /* NFA_STATUS_OK if successful */ 173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 num_ee; /* number of MFCEE information */ 174e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_DISCOVER_INFO ee_disc_info[NFA_DM_MAX_UICC]; /* MFCEE DISCOVER Request info */ 175e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_DISCOVER_REQ; 176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 1775c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen/* Data for NFA_EE_DATA_EVT */ 1785c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenentypedef struct 1795c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen{ 1805c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen tNFA_HANDLE handle; /* Connection handle */ 1815c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen UINT16 len; /* Length of data */ 1825c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen UINT8 *p_buf; /* Data buffer */ 1835c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen} tNFA_EE_DATA; 184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 185e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Union of all EE callback structures */ 186e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef union 187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS status; /* NFA_STATUS_OK is successful; otherwise NFA_STATUS_FAILED */ 1895c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen tNFA_EE_DATA data; 190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_HANDLE handle; 191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_DISCOVER ee_discover; 192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS ee_register; 193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS deregister; 194e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS add_aid; 195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS remove_aid; 196e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS set_tech; 197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_STATUS set_proto; 198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_CONNECT connect; 199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_ACTION action; 200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_MODE_SET mode_set; 201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_INFO new_ee; 202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_DISCOVER_REQ discover_req; 203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_EE_CBACK_DATA; 204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* EE callback */ 207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tNFA_EE_CBACK) (tNFA_EE_EVT event, tNFA_EE_CBACK_DATA *p_data); 208e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** External Function Declarations 211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern "C" 214e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 216e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeDiscover 220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 221e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function retrieves the NFCEE information from NFCC. 222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** The NFCEE information is reported in NFA_EE_DISCOVER_EVT. 223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** This function may be called when a system supports removable 225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFCEEs, 226e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if information is retrieved successfully 228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED If wrong state (retry later) 229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 231e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 232e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeDiscover (tNFA_EE_CBACK *p_cback); 233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 236e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeGetInfo 237e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 238e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function retrieves the NFCEE information from NFA. 239e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** The actual number of NFCEE is returned in p_num_nfcee 240e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** and NFCEE information is returned in p_info 241e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 242e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if information is retrieved successfully 243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED If wrong state (retry later) 244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 246e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 247e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeGetInfo (UINT8 *p_num_nfcee, 248e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_INFO *p_info); 249e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 250e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 251e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 252e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeRegister 253e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 254e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function registers a callback function to receive the 255e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** events from NFA-EE module. 256e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 257e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 258e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 260e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 261e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 262e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeRegister (tNFA_EE_CBACK *p_cback); 263e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 264e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 265e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 266e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeDeregister 267e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 268e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function de-registers the callback function 269e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 270e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 271e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 272e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 273e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 274e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 275e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeDeregister (tNFA_EE_CBACK *p_cback); 276e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 277e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 278e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 279e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeModeSet 280e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 281e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to activate (mode = NFA_EE_MD_ACTIVATE) 282e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** or deactivate (mode = NFA_EE_MD_DEACTIVATE) the NFCEE 283e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** identified by the given ee_handle. The result of this 284e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** operation is reported with the NFA_EE_MODE_SET_EVT. 285e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 286e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 287e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 288e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 289e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 290e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 291e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeModeSet (tNFA_HANDLE ee_handle, 292e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_MD mode); 293e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 294e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 295e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 296e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 297e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeSetDefaultTechRouting 298e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 299e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to add, change or remove the 300e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** default routing based on RF technology in the listen mode 301e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** routing table for the given ee_handle. The status of this 302e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** operation is reported as the NFA_EE_SET_TECH_CFG_EVT. 303e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 304e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Note: If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT 305e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** should happen before calling this function 306e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 307e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Note: NFA_EeUpdateNow() should be called after last NFA-EE function 308e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** to change the listen mode routing is called. 309e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 310e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 311e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 312e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 313e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 314e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 315e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeSetDefaultTechRouting (tNFA_HANDLE ee_handle, 316e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_TECHNOLOGY_MASK technologies_switch_on, 317e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_TECHNOLOGY_MASK technologies_switch_off, 318e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_TECHNOLOGY_MASK technologies_battery_off); 319e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 320e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 321e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 322e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeSetDefaultProtoRouting 323e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 324e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to add, change or remove the 325e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** default routing based on Protocol in the listen mode routing 326e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** table for the given ee_handle. The status of this 327e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** operation is reported as the NFA_EE_SET_PROTO_CFG_EVT. 328e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 329e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Note: If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT 330e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** should happen before calling this function 331e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 332e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Note: NFA_EeUpdateNow() should be called after last NFA-EE function 333e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** to change the listen mode routing is called. 334e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 335e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 336e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 337e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 338e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 339e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 340e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeSetDefaultProtoRouting (tNFA_HANDLE ee_handle, 341e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_PROTOCOL_MASK protocols_switch_on, 342e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_PROTOCOL_MASK protocols_switch_off, 343e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_PROTOCOL_MASK protocols_battery_off); 344e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 345e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 346e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 347e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeAddAidRouting 348e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 349e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to add an AID entry in the 350e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** listen mode routing table in NFCC. The status of this 351e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** operation is reported as the NFA_EE_ADD_AID_EVT. 352e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 353e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Note: If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT 354e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** should happen before calling this function 355e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 356e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Note: NFA_EeUpdateNow() should be called after last NFA-EE function 357e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** to change the listen mode routing is called. 358e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 359e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 360e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 361e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 362e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 363e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 364e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeAddAidRouting (tNFA_HANDLE ee_handle, 365e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 aid_len, 366e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 *p_aid, 367e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_PWR_STATE power_state); 368e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 369e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 370e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 371e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeRemoveAidRouting 372e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 373e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to remove the given AID entry from the 374e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** listen mode routing table. If the entry configures VS, 375e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** it is also removed. The status of this operation is reported 376e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** as the NFA_EE_REMOVE_AID_EVT. 377e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 378e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Note: If RF discovery is started, NFA_StopRfDiscovery()/NFA_RF_DISCOVERY_STOPPED_EVT 379e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** should happen before calling this function 380e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 381e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Note: NFA_EeUpdateNow() should be called after last NFA-EE function 382e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** to change the listen mode routing is called. 383e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 384e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 385e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 386e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 387e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 388e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 389e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeRemoveAidRouting (UINT8 aid_len, 390e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 *p_aid); 391e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 392e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 393e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 394e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeUpdateNow 395e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 396e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to send the current listen mode 397e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** routing table and VS configuration to the NFCC 398e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 399e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 400e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 401e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 402e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 403e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeUpdateNow (void); 404e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 405e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 406e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 407e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeConnect 408e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 409e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Open connection to an NFCEE attached to the NFCC 410e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 411e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** The status of this operation is 412e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** reported with the NFA_EE_CONNECT_EVT. 413e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 414e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 415e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 416e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 417e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 418e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 419e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeConnect (tNFA_HANDLE ee_handle, 420e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 ee_interface, 421e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFA_EE_CBACK *p_cback); 422e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 423e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 424e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 425e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeSendData 426e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 427e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Send data to the given NFCEE. 428e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** This function shall be called after NFA_EE_CONNECT_EVT is reported 429e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** and before NFA_EeDisconnect is called on the given ee_handle. 430e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 431e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 432e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 433e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 434e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 435e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 436e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeSendData (tNFA_HANDLE ee_handle, 437e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 data_len, 438e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 *p_data); 439e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 440e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 441e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 442e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_EeDisconnect 443e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 444e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Disconnect (if a connection is currently open) from an 445e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFCEE interface. The result of this operation is reported 446e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** with the NFA_EE_DISCONNECT_EVT. 447e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 448e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 449e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 450e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_INVALID_PARAM If bad parameter 451e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 452e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 453e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_EeDisconnect (tNFA_HANDLE ee_handle); 454e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 455e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 456e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 457e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 458e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 459e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 460e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFA_EE_API_H */ 461e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 462