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