The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 1 | /****************************************************************************** |
| 2 | * |
Evan Chu | e9629ba | 2014-01-31 11:18:47 -0500 | [diff] [blame] | 3 | * Copyright (C) 2010-2014 Broadcom Corporation |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 4 | * |
| 5 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | * you may not use this file except in compliance with the License. |
| 7 | * You may obtain a copy of the License at: |
| 8 | * |
| 9 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | * |
| 11 | * Unless required by applicable law or agreed to in writing, software |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | * See the License for the specific language governing permissions and |
| 15 | * limitations under the License. |
| 16 | * |
| 17 | ******************************************************************************/ |
| 18 | |
| 19 | /****************************************************************************** |
| 20 | * |
| 21 | * This is the private interface file for the NFA EE. |
| 22 | * |
| 23 | ******************************************************************************/ |
| 24 | #ifndef NFA_EE_INT_H |
| 25 | #define NFA_EE_INT_H |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 26 | #include "nfa_ee_api.h" |
| 27 | #include "nfa_sys.h" |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 28 | #include "nfc_api.h" |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 29 | |
| 30 | /***************************************************************************** |
| 31 | ** Constants and data types |
| 32 | *****************************************************************************/ |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 33 | /* the number of tNFA_EE_ECBs (for NFCEEs and DH) */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 34 | #define NFA_EE_NUM_ECBS (NFA_EE_MAX_EE_SUPPORTED + 1) |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 35 | /* The index for DH in nfa_ee_cb.ee_cb[] */ |
| 36 | #define NFA_EE_CB_4_DH NFA_EE_MAX_EE_SUPPORTED |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 37 | #define NFA_EE_INVALID 0xFF |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 38 | /* only A, B, F, Bprime are supported by UICC now */ |
| 39 | #define NFA_EE_MAX_TECH_ROUTE 4 |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 40 | |
| 41 | #ifndef NFA_EE_AID_CFG_TAG_NAME |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 42 | /* AID */ |
| 43 | #define NFA_EE_AID_CFG_TAG_NAME 0x4F |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 44 | #endif |
| 45 | |
| 46 | /* NFA EE events */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 47 | enum { |
| 48 | NFA_EE_API_DISCOVER_EVT = NFA_SYS_EVT_START(NFA_ID_EE), |
| 49 | NFA_EE_API_REGISTER_EVT, |
| 50 | NFA_EE_API_DEREGISTER_EVT, |
| 51 | NFA_EE_API_MODE_SET_EVT, |
| 52 | NFA_EE_API_SET_TECH_CFG_EVT, |
| 53 | NFA_EE_API_SET_PROTO_CFG_EVT, |
| 54 | NFA_EE_API_ADD_AID_EVT, |
| 55 | NFA_EE_API_REMOVE_AID_EVT, |
Love Khanna | 1d06277 | 2018-04-10 21:10:02 +0530 | [diff] [blame^] | 56 | NFA_EE_API_ADD_SYSCODE_EVT, |
| 57 | NFA_EE_API_REMOVE_SYSCODE_EVT, |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 58 | NFA_EE_API_LMRT_SIZE_EVT, |
| 59 | NFA_EE_API_UPDATE_NOW_EVT, |
| 60 | NFA_EE_API_CONNECT_EVT, |
| 61 | NFA_EE_API_SEND_DATA_EVT, |
| 62 | NFA_EE_API_DISCONNECT_EVT, |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 63 | |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 64 | NFA_EE_NCI_DISC_RSP_EVT, |
| 65 | NFA_EE_NCI_DISC_NTF_EVT, |
| 66 | NFA_EE_NCI_MODE_SET_RSP_EVT, |
| 67 | NFA_EE_NCI_CONN_EVT, |
| 68 | NFA_EE_NCI_DATA_EVT, |
| 69 | NFA_EE_NCI_ACTION_NTF_EVT, |
| 70 | NFA_EE_NCI_DISC_REQ_NTF_EVT, |
| 71 | NFA_EE_NCI_WAIT_RSP_EVT, |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 72 | |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 73 | NFA_EE_ROUT_TIMEOUT_EVT, |
| 74 | NFA_EE_DISCV_TIMEOUT_EVT, |
| 75 | NFA_EE_CFG_TO_NFCC_EVT, |
| 76 | NFA_EE_MAX_EVT |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 77 | |
| 78 | }; |
| 79 | |
Ruchi Kandoi | 512ee63 | 2017-01-03 13:59:10 -0800 | [diff] [blame] | 80 | typedef uint16_t tNFA_EE_INT_EVT; |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 81 | /* for listen mode routing table*/ |
| 82 | #define NFA_EE_AE_ROUTE 0x80 |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 83 | #define NFA_EE_AE_VS 0x40 |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 84 | |
| 85 | /* NFA EE Management state */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 86 | enum { |
| 87 | NFA_EE_EM_STATE_INIT = 0, |
| 88 | NFA_EE_EM_STATE_INIT_DONE, |
| 89 | NFA_EE_EM_STATE_RESTORING, |
| 90 | NFA_EE_EM_STATE_DISABLING, |
| 91 | NFA_EE_EM_STATE_DISABLED, |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 92 | |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 93 | NFA_EE_EM_STATE_MAX |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 94 | }; |
Ruchi Kandoi | 512ee63 | 2017-01-03 13:59:10 -0800 | [diff] [blame] | 95 | typedef uint8_t tNFA_EE_EM_STATE; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 96 | |
| 97 | /* NFA EE connection status */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 98 | enum { |
| 99 | NFA_EE_CONN_ST_NONE, /* not connected */ |
| 100 | NFA_EE_CONN_ST_WAIT, /* connection is initiated; waiting for ack */ |
| 101 | NFA_EE_CONN_ST_CONN, /* connected; can send/receive data */ |
Ruchi Kandoi | 2eba59f | 2017-10-24 11:20:45 -0700 | [diff] [blame] | 102 | NFA_EE_CONN_ST_DISC /* disconnecting; waiting for ack */ |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 103 | }; |
Ruchi Kandoi | 512ee63 | 2017-01-03 13:59:10 -0800 | [diff] [blame] | 104 | typedef uint8_t tNFA_EE_CONN_ST; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 105 | |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 106 | #define NFA_EE_MAX_AID_CFG_LEN (510) |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 107 | |
Love Khanna | 1d06277 | 2018-04-10 21:10:02 +0530 | [diff] [blame^] | 108 | #define NFA_EE_SYSTEM_CODE_LEN 02 |
| 109 | #define NFA_EE_SYSTEM_CODE_TLV_SIZE 06 |
| 110 | #define NFA_EE_MAX_SYSTEM_CODE_ENTRIES 10 |
| 111 | #define NFA_EE_MAX_SYSTEM_CODE_CFG_LEN \ |
| 112 | (NFA_EE_MAX_SYSTEM_CODE_ENTRIES * NFA_EE_SYSTEM_CODE_TLV_SIZE) |
| 113 | |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 114 | /* NFA EE control block flags: |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 115 | * use to indicate an API function has changed the configuration of the |
| 116 | * associated NFCEE |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 117 | * The flags are cleared when the routing table/VS is updated */ |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 118 | /* technology routing changed */ |
| 119 | #define NFA_EE_ECB_FLAGS_TECH 0x02 |
| 120 | /* protocol routing changed */ |
| 121 | #define NFA_EE_ECB_FLAGS_PROTO 0x04 |
| 122 | /* AID routing changed */ |
| 123 | #define NFA_EE_ECB_FLAGS_AID 0x08 |
Love Khanna | 1d06277 | 2018-04-10 21:10:02 +0530 | [diff] [blame^] | 124 | /* System Code routing changed */ |
| 125 | #define NFA_EE_ECB_FLAGS_SYSCODE 0xE0 |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 126 | /* VS changed */ |
| 127 | #define NFA_EE_ECB_FLAGS_VS 0x10 |
| 128 | /* Restore related */ |
| 129 | #define NFA_EE_ECB_FLAGS_RESTORE 0x20 |
| 130 | /* routing flags changed */ |
| 131 | #define NFA_EE_ECB_FLAGS_ROUTING 0x0E |
| 132 | /* NFCEE Discover Request NTF is set */ |
| 133 | #define NFA_EE_ECB_FLAGS_DISC_REQ 0x40 |
| 134 | /* DISC_REQ N reported before DISC N */ |
| 135 | #define NFA_EE_ECB_FLAGS_ORDER 0x80 |
Ruchi Kandoi | 512ee63 | 2017-01-03 13:59:10 -0800 | [diff] [blame] | 136 | typedef uint8_t tNFA_EE_ECB_FLAGS; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 137 | |
| 138 | /* part of tNFA_EE_STATUS; for internal use only */ |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 139 | /* waiting for restore to full power mode to complete */ |
| 140 | #define NFA_EE_STATUS_RESTORING 0x20 |
| 141 | /* this bit is in ee_status for internal use only */ |
| 142 | #define NFA_EE_STATUS_INT_MASK 0x20 |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 143 | |
| 144 | /* NFA-EE information for a particular NFCEE Entity (including DH) */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 145 | typedef struct { |
| 146 | tNFA_TECHNOLOGY_MASK |
| 147 | tech_switch_on; /* default routing - technologies switch_on */ |
| 148 | tNFA_TECHNOLOGY_MASK |
| 149 | tech_switch_off; /* default routing - technologies switch_off */ |
| 150 | tNFA_TECHNOLOGY_MASK |
| 151 | tech_battery_off; /* default routing - technologies battery_off*/ |
| 152 | tNFA_PROTOCOL_MASK |
| 153 | proto_switch_on; /* default routing - protocols switch_on */ |
| 154 | tNFA_PROTOCOL_MASK |
| 155 | proto_switch_off; /* default routing - protocols switch_off */ |
| 156 | tNFA_PROTOCOL_MASK |
| 157 | proto_battery_off; /* default routing - protocols battery_off */ |
| 158 | tNFA_EE_CONN_ST conn_st; /* connection status */ |
| 159 | uint8_t conn_id; /* connection id */ |
| 160 | tNFA_EE_CBACK* p_ee_cback; /* the callback function */ |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 161 | |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 162 | /* Each AID entry has an ssociated aid_len, aid_pwr_cfg, aid_rt_info. |
| 163 | * aid_cfg[] contains AID and maybe some other VS information in TLV format |
| 164 | * The first T is always NFA_EE_AID_CFG_TAG_NAME, the L is the actual AID |
| 165 | * length |
| 166 | * the aid_len is the total length of all the TLVs associated with this AID |
| 167 | * entry |
| 168 | */ |
| 169 | uint8_t aid_len[NFA_EE_MAX_AID_ENTRIES]; /* the actual lengths in aid_cfg */ |
| 170 | uint8_t aid_pwr_cfg[NFA_EE_MAX_AID_ENTRIES]; /* power configuration of this |
| 171 | AID entry */ |
| 172 | uint8_t aid_rt_info[NFA_EE_MAX_AID_ENTRIES]; /* route/vs info for this AID |
| 173 | entry */ |
| 174 | uint8_t aid_cfg[NFA_EE_MAX_AID_CFG_LEN]; /* routing entries based on AID */ |
| 175 | uint8_t aid_entries; /* The number of AID entries in aid_cfg */ |
| 176 | uint8_t nfcee_id; /* ID for this NFCEE */ |
| 177 | uint8_t ee_status; /* The NFCEE status */ |
| 178 | uint8_t ee_old_status; /* The NFCEE status before going to low power mode */ |
| 179 | tNFA_EE_INTERFACE |
| 180 | ee_interface[NFC_MAX_EE_INTERFACE]; /* NFCEE supported interface */ |
| 181 | tNFA_EE_TLV ee_tlv[NFC_MAX_EE_TLVS]; /* the TLV */ |
| 182 | uint8_t num_interface; /* number of Target interface */ |
| 183 | uint8_t num_tlvs; /* number of TLVs */ |
Love Khanna | 81e4f81 | 2017-06-02 17:50:19 +0530 | [diff] [blame] | 184 | uint8_t ee_power_supply_status; /* power supply of NFCEE*/ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 185 | tNFA_EE_ECB_FLAGS ecb_flags; /* the flags of this control block */ |
| 186 | tNFA_EE_INTERFACE use_interface; /* NFCEE interface used for the connection */ |
| 187 | tNFA_NFC_PROTOCOL la_protocol; /* Listen A protocol */ |
| 188 | tNFA_NFC_PROTOCOL lb_protocol; /* Listen B protocol */ |
| 189 | tNFA_NFC_PROTOCOL lf_protocol; /* Listen F protocol */ |
| 190 | tNFA_NFC_PROTOCOL lbp_protocol; /* Listen B' protocol */ |
| 191 | uint8_t size_mask; /* the size for technology and protocol routing */ |
| 192 | uint16_t size_aid; /* the size for aid routing */ |
Love Khanna | f3c018a | 2017-05-11 18:34:32 +0530 | [diff] [blame] | 193 | uint8_t aid_info[NFA_EE_MAX_AID_ENTRIES]; /* Aid Info Prefix/Suffix/Exact */ |
Love Khanna | 1d06277 | 2018-04-10 21:10:02 +0530 | [diff] [blame^] | 194 | /*System Code Based Routing Variables*/ |
| 195 | uint8_t sys_code_cfg[NFA_EE_MAX_SYSTEM_CODE_ENTRIES * NFA_EE_SYSTEM_CODE_LEN]; |
| 196 | uint8_t sys_code_pwr_cfg[NFA_EE_MAX_SYSTEM_CODE_ENTRIES]; |
| 197 | uint8_t sys_code_rt_loc[NFA_EE_MAX_SYSTEM_CODE_ENTRIES]; |
| 198 | uint8_t sys_code_rt_loc_vs_info[NFA_EE_MAX_SYSTEM_CODE_ENTRIES]; |
| 199 | /* The number of SC entries in sys_code_cfg buffer*/ |
| 200 | uint8_t sys_code_cfg_entries; |
| 201 | uint16_t size_sys_code; /* The size for system code routing */ |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 202 | } tNFA_EE_ECB; |
| 203 | |
| 204 | /* data type for NFA_EE_API_DISCOVER_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 205 | typedef struct { |
| 206 | NFC_HDR hdr; |
| 207 | tNFA_EE_CBACK* p_cback; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 208 | } tNFA_EE_API_DISCOVER; |
| 209 | |
| 210 | /* data type for NFA_EE_API_REGISTER_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 211 | typedef struct { |
| 212 | NFC_HDR hdr; |
| 213 | tNFA_EE_CBACK* p_cback; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 214 | } tNFA_EE_API_REGISTER; |
| 215 | |
| 216 | /* data type for NFA_EE_API_DEREGISTER_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 217 | typedef struct { |
| 218 | NFC_HDR hdr; |
| 219 | int index; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 220 | } tNFA_EE_API_DEREGISTER; |
| 221 | |
| 222 | /* data type for NFA_EE_API_MODE_SET_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 223 | typedef struct { |
| 224 | NFC_HDR hdr; |
| 225 | tNFA_EE_ECB* p_cb; |
| 226 | uint8_t nfcee_id; |
| 227 | uint8_t mode; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 228 | } tNFA_EE_API_MODE_SET; |
| 229 | |
| 230 | /* data type for NFA_EE_API_SET_TECH_CFG_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 231 | typedef struct { |
| 232 | NFC_HDR hdr; |
| 233 | tNFA_EE_ECB* p_cb; |
| 234 | uint8_t nfcee_id; |
| 235 | tNFA_TECHNOLOGY_MASK technologies_switch_on; |
| 236 | tNFA_TECHNOLOGY_MASK technologies_switch_off; |
| 237 | tNFA_TECHNOLOGY_MASK technologies_battery_off; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 238 | } tNFA_EE_API_SET_TECH_CFG; |
| 239 | |
| 240 | /* data type for NFA_EE_API_SET_PROTO_CFG_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 241 | typedef struct { |
| 242 | NFC_HDR hdr; |
| 243 | tNFA_EE_ECB* p_cb; |
| 244 | uint8_t nfcee_id; |
| 245 | tNFA_PROTOCOL_MASK protocols_switch_on; |
| 246 | tNFA_PROTOCOL_MASK protocols_switch_off; |
| 247 | tNFA_PROTOCOL_MASK protocols_battery_off; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 248 | } tNFA_EE_API_SET_PROTO_CFG; |
| 249 | |
| 250 | /* data type for NFA_EE_API_ADD_AID_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 251 | typedef struct { |
| 252 | NFC_HDR hdr; |
| 253 | tNFA_EE_ECB* p_cb; |
| 254 | uint8_t nfcee_id; |
| 255 | uint8_t aid_len; |
| 256 | uint8_t* p_aid; |
| 257 | tNFA_EE_PWR_STATE power_state; |
Love Khanna | f3c018a | 2017-05-11 18:34:32 +0530 | [diff] [blame] | 258 | uint8_t aidInfo; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 259 | } tNFA_EE_API_ADD_AID; |
| 260 | |
| 261 | /* data type for NFA_EE_API_REMOVE_AID_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 262 | typedef struct { |
| 263 | NFC_HDR hdr; |
| 264 | uint8_t aid_len; |
| 265 | uint8_t* p_aid; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 266 | } tNFA_EE_API_REMOVE_AID; |
| 267 | |
Love Khanna | 1d06277 | 2018-04-10 21:10:02 +0530 | [diff] [blame^] | 268 | /* data type for NFA_EE_API_ADD_SYSCODE_EVT */ |
| 269 | typedef struct { |
| 270 | NFC_HDR hdr; |
| 271 | tNFA_EE_ECB* p_cb; |
| 272 | uint8_t nfcee_id; |
| 273 | uint16_t syscode; |
| 274 | tNFA_EE_PWR_STATE power_state; |
| 275 | } tNFA_EE_API_ADD_SYSCODE; |
| 276 | |
| 277 | /* data type for NFA_EE_API_REMOVE_SYSCODE_EVT */ |
| 278 | typedef struct { |
| 279 | NFC_HDR hdr; |
| 280 | uint16_t syscode; |
| 281 | } tNFA_EE_API_REMOVE_SYSCODE; |
| 282 | |
Sherry Smith | ca0bff4 | 2014-01-22 15:15:54 -0800 | [diff] [blame] | 283 | /* data type for NFA_EE_API_LMRT_SIZE_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 284 | typedef NFC_HDR tNFA_EE_API_LMRT_SIZE; |
Sherry Smith | ca0bff4 | 2014-01-22 15:15:54 -0800 | [diff] [blame] | 285 | |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 286 | /* data type for NFA_EE_API_CONNECT_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 287 | typedef struct { |
| 288 | NFC_HDR hdr; |
| 289 | tNFA_EE_ECB* p_cb; |
| 290 | uint8_t nfcee_id; |
| 291 | uint8_t ee_interface; |
| 292 | tNFA_EE_CBACK* p_cback; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 293 | } tNFA_EE_API_CONNECT; |
| 294 | |
| 295 | /* data type for NFA_EE_API_SEND_DATA_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 296 | typedef struct { |
| 297 | NFC_HDR hdr; |
| 298 | tNFA_EE_ECB* p_cb; |
| 299 | uint8_t nfcee_id; |
| 300 | uint16_t data_len; |
| 301 | uint8_t* p_data; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 302 | } tNFA_EE_API_SEND_DATA; |
| 303 | |
| 304 | /* data type for NFA_EE_API_DISCONNECT_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 305 | typedef struct { |
| 306 | NFC_HDR hdr; |
| 307 | tNFA_EE_ECB* p_cb; |
| 308 | uint8_t nfcee_id; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 309 | } tNFA_EE_API_DISCONNECT; |
| 310 | |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 311 | /* common data type for internal events with nfa_ee_use_cfg_cb[] as TRUE */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 312 | typedef struct { |
| 313 | NFC_HDR hdr; |
| 314 | tNFA_EE_ECB* p_cb; |
| 315 | uint8_t nfcee_id; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 316 | } tNFA_EE_CFG_HDR; |
| 317 | |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 318 | /* data type for NFA_EE_NCI_DISC_RSP_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 319 | typedef struct { |
| 320 | NFC_HDR hdr; |
| 321 | tNFC_NFCEE_DISCOVER_REVT* p_data; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 322 | } tNFA_EE_NCI_DISC_RSP; |
| 323 | |
| 324 | /* data type for NFA_EE_NCI_DISC_NTF_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 325 | typedef struct { |
| 326 | NFC_HDR hdr; |
| 327 | tNFC_NFCEE_INFO_REVT* p_data; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 328 | } tNFA_EE_NCI_DISC_NTF; |
| 329 | |
| 330 | /* data type for NFA_EE_NCI_MODE_SET_RSP_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 331 | typedef struct { |
| 332 | NFC_HDR hdr; |
| 333 | tNFC_NFCEE_MODE_SET_REVT* p_data; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 334 | } tNFA_EE_NCI_MODE_SET; |
| 335 | |
Sherry Smith | 40e67c9 | 2014-01-16 10:10:29 -0800 | [diff] [blame] | 336 | /* data type for NFA_EE_NCI_WAIT_RSP_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 337 | typedef struct { |
| 338 | NFC_HDR hdr; |
| 339 | void* p_data; |
| 340 | uint8_t opcode; |
Sherry Smith | 40e67c9 | 2014-01-16 10:10:29 -0800 | [diff] [blame] | 341 | } tNFA_EE_NCI_WAIT_RSP; |
| 342 | |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 343 | /* data type for NFA_EE_NCI_CONN_EVT and NFA_EE_NCI_DATA_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 344 | typedef struct { |
| 345 | NFC_HDR hdr; |
| 346 | uint8_t conn_id; |
| 347 | tNFC_CONN_EVT event; |
| 348 | tNFC_CONN* p_data; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 349 | } tNFA_EE_NCI_CONN; |
| 350 | |
| 351 | /* data type for NFA_EE_NCI_ACTION_NTF_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 352 | typedef struct { |
| 353 | NFC_HDR hdr; |
| 354 | tNFC_EE_ACTION_REVT* p_data; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 355 | } tNFA_EE_NCI_ACTION; |
| 356 | |
| 357 | /* data type for NFA_EE_NCI_DISC_REQ_NTF_EVT */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 358 | typedef struct { |
| 359 | NFC_HDR hdr; |
| 360 | tNFC_EE_DISCOVER_REQ_REVT* p_data; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 361 | } tNFA_EE_NCI_DISC_REQ; |
| 362 | |
| 363 | /* union of all event data types */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 364 | typedef union { |
| 365 | NFC_HDR hdr; |
| 366 | tNFA_EE_CFG_HDR cfg_hdr; |
| 367 | tNFA_EE_API_DISCOVER ee_discover; |
| 368 | tNFA_EE_API_REGISTER ee_register; |
| 369 | tNFA_EE_API_DEREGISTER deregister; |
| 370 | tNFA_EE_API_MODE_SET mode_set; |
| 371 | tNFA_EE_API_SET_TECH_CFG set_tech; |
| 372 | tNFA_EE_API_SET_PROTO_CFG set_proto; |
| 373 | tNFA_EE_API_ADD_AID add_aid; |
| 374 | tNFA_EE_API_REMOVE_AID rm_aid; |
Love Khanna | 1d06277 | 2018-04-10 21:10:02 +0530 | [diff] [blame^] | 375 | tNFA_EE_API_ADD_SYSCODE add_syscode; |
| 376 | tNFA_EE_API_REMOVE_SYSCODE rm_syscode; |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 377 | tNFA_EE_API_LMRT_SIZE lmrt_size; |
| 378 | tNFA_EE_API_CONNECT connect; |
| 379 | tNFA_EE_API_SEND_DATA send_data; |
| 380 | tNFA_EE_API_DISCONNECT disconnect; |
| 381 | tNFA_EE_NCI_DISC_RSP disc_rsp; |
| 382 | tNFA_EE_NCI_DISC_NTF disc_ntf; |
| 383 | tNFA_EE_NCI_MODE_SET mode_set_rsp; |
| 384 | tNFA_EE_NCI_WAIT_RSP wait_rsp; |
| 385 | tNFA_EE_NCI_CONN conn; |
| 386 | tNFA_EE_NCI_ACTION act; |
| 387 | tNFA_EE_NCI_DISC_REQ disc_req; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 388 | } tNFA_EE_MSG; |
| 389 | |
| 390 | /* type for State Machine (SM) action functions */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 391 | typedef void (*tNFA_EE_SM_ACT)(tNFA_EE_MSG* p_data); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 392 | |
| 393 | /***************************************************************************** |
| 394 | ** control block |
| 395 | *****************************************************************************/ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 396 | #define NFA_EE_CFGED_UPDATE_NOW 0x80 |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 397 | /* either switch off or battery off is configured */ |
| 398 | #define NFA_EE_CFGED_OFF_ROUTING 0x40 |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 399 | |
| 400 | /* the following status are the definition used in ee_cfg_sts */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 401 | #define NFA_EE_STS_CHANGED_ROUTING 0x01 |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 402 | #define NFA_EE_STS_CHANGED 0x0f |
| 403 | #define NFA_EE_STS_PREV_ROUTING 0x10 |
| 404 | #define NFA_EE_STS_PREV 0xf0 |
Sherry Smith | 40e67c9 | 2014-01-16 10:10:29 -0800 | [diff] [blame] | 405 | |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 406 | /* need to report NFA_EE_UPDATED_EVT */ |
| 407 | #define NFA_EE_WAIT_UPDATE 0x10 |
| 408 | /* waiting for the rsp of set routing commands */ |
| 409 | #define NFA_EE_WAIT_UPDATE_RSP 0x20 |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 410 | #define NFA_EE_WAIT_UPDATE_ALL 0xF0 |
Sherry Smith | 40e67c9 | 2014-01-16 10:10:29 -0800 | [diff] [blame] | 411 | |
Ruchi Kandoi | 512ee63 | 2017-01-03 13:59:10 -0800 | [diff] [blame] | 412 | typedef uint8_t tNFA_EE_WAIT; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 413 | |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 414 | /* set this bit when waiting for HCI to finish the initialization process in |
| 415 | * NFA_EE_EM_STATE_RESTORING */ |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 416 | #define NFA_EE_FLAG_WAIT_HCI 0x01 |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 417 | /* set this bit when EE needs to notify the p_enable_cback at the end of NFCEE |
| 418 | * discover process in NFA_EE_EM_STATE_RESTORING */ |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 419 | #define NFA_EE_FLAG_NOTIFY_HCI 0x02 |
| 420 | /* set this bit when gracefully disable with outstanding NCI connections */ |
| 421 | #define NFA_EE_FLAG_WAIT_DISCONN 0x04 |
Ruchi Kandoi | 512ee63 | 2017-01-03 13:59:10 -0800 | [diff] [blame] | 422 | typedef uint8_t tNFA_EE_FLAGS; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 423 | |
Ruchi Kandoi | 46e6e28 | 2017-01-30 14:26:10 -0800 | [diff] [blame] | 424 | /* NFCEE DISCOVER in progress */ |
| 425 | #define NFA_EE_DISC_STS_ON 0x00 |
| 426 | /* disable NFCEE DISCOVER */ |
| 427 | #define NFA_EE_DISC_STS_OFF 0x01 |
| 428 | /* received NFCEE DISCOVER REQ NTF */ |
| 429 | #define NFA_EE_DISC_STS_REQ 0x02 |
Love Khanna | 81e4f81 | 2017-06-02 17:50:19 +0530 | [diff] [blame] | 430 | /* received NFA_EE_MODE_SET_COMPLETE */ |
| 431 | #define NFA_EE_MODE_SET_COMPLETE 0x03 |
Ruchi Kandoi | 512ee63 | 2017-01-03 13:59:10 -0800 | [diff] [blame] | 432 | typedef uint8_t tNFA_EE_DISC_STS; |
Martijn Coenen | 5c65c3a | 2013-03-27 13:23:36 -0700 | [diff] [blame] | 433 | |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 434 | typedef void(tNFA_EE_ENABLE_DONE_CBACK)(tNFA_EE_DISC_STS status); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 435 | |
| 436 | /* NFA EE Management control block */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 437 | typedef struct { |
| 438 | tNFA_EE_ECB ecb[NFA_EE_NUM_ECBS]; /* control block for DH and NFCEEs */ |
| 439 | TIMER_LIST_ENT timer; /* timer to send info to NFCC */ |
| 440 | TIMER_LIST_ENT discv_timer; /* timer to end NFCEE discovery */ |
| 441 | tNFA_EE_CBACK* p_ee_cback[NFA_EE_MAX_CBACKS]; /* to report EE events */ |
| 442 | tNFA_EE_CBACK* p_ee_disc_cback; /* to report EE discovery result */ |
| 443 | tNFA_EE_ENABLE_DONE_CBACK* |
Ruchi Kandoi | 7e16563 | 2017-08-04 09:24:30 -0700 | [diff] [blame] | 444 | p_enable_cback; /* callback to notify on enable done*/ |
| 445 | tNFA_EE_EM_STATE em_state; /* NFA-EE state initialized or not */ |
| 446 | uint8_t wait_rsp; /* num of NCI rsp expected (update) */ |
| 447 | uint8_t num_ee_expecting; /* number of ee_info still expecting*/ |
| 448 | uint8_t cur_ee; /* the number of ee_info in cb */ |
| 449 | uint8_t ee_cfged; /* the bit mask of configured ECBs */ |
| 450 | uint8_t ee_cfg_sts; /* configuration status */ |
| 451 | tNFA_EE_WAIT ee_wait_evt; /* Pending event(s) to be reported */ |
| 452 | tNFA_EE_FLAGS ee_flags; /* flags */ |
Love Khanna | c6bd78b | 2017-04-14 16:19:12 +0530 | [diff] [blame] | 453 | uint8_t route_block_control; /* controls route block feature */ |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 454 | } tNFA_EE_CB; |
| 455 | |
Love Khanna | b4ac88d | 2017-04-06 16:25:36 +0530 | [diff] [blame] | 456 | /* Order of Routing entries in Routing Table */ |
| 457 | #define NCI_ROUTE_ORDER_AID 0x01 /* AID routing order */ |
Love Khanna | 1d06277 | 2018-04-10 21:10:02 +0530 | [diff] [blame^] | 458 | #define NCI_ROUTE_ORDER_SYS_CODE 0x03 /* System Code routing order*/ |
Love Khanna | b4ac88d | 2017-04-06 16:25:36 +0530 | [diff] [blame] | 459 | #define NCI_ROUTE_ORDER_PROTOCOL 0x04 /* Protocol routing order*/ |
| 460 | #define NCI_ROUTE_ORDER_TECHNOLOGY 0x05 /* Technology routing order*/ |
| 461 | |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 462 | /***************************************************************************** |
| 463 | ** External variables |
| 464 | *****************************************************************************/ |
| 465 | |
| 466 | /* NFA EE control block */ |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 467 | extern tNFA_EE_CB nfa_ee_cb; |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 468 | |
| 469 | /***************************************************************************** |
| 470 | ** External functions |
| 471 | *****************************************************************************/ |
| 472 | /* function prototypes - exported from nfa_ee_main.c */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 473 | void nfa_ee_sys_enable(void); |
| 474 | void nfa_ee_sys_disable(void); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 475 | |
| 476 | /* event handler function type */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 477 | bool nfa_ee_evt_hdlr(NFC_HDR* p_msg); |
| 478 | void nfa_ee_proc_nfcc_power_mode(uint8_t nfcc_power_mode); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 479 | #if (NFC_NFCEE_INCLUDED == TRUE) |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 480 | void nfa_ee_get_tech_route(uint8_t power_state, uint8_t* p_handles); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 481 | #endif |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 482 | void nfa_ee_proc_evt(tNFC_RESPONSE_EVT event, void* p_data); |
| 483 | tNFA_EE_ECB* nfa_ee_find_ecb(uint8_t nfcee_id); |
| 484 | tNFA_EE_ECB* nfa_ee_find_ecb_by_conn_id(uint8_t conn_id); |
| 485 | uint8_t nfa_ee_ecb_to_mask(tNFA_EE_ECB* p_cb); |
| 486 | void nfa_ee_restore_one_ecb(tNFA_EE_ECB* p_cb); |
| 487 | bool nfa_ee_is_active(tNFA_HANDLE nfcee_id); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 488 | |
| 489 | /* Action function prototypes - nfa_ee_act.c */ |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 490 | void nfa_ee_api_discover(tNFA_EE_MSG* p_data); |
| 491 | void nfa_ee_api_register(tNFA_EE_MSG* p_data); |
| 492 | void nfa_ee_api_deregister(tNFA_EE_MSG* p_data); |
| 493 | void nfa_ee_api_mode_set(tNFA_EE_MSG* p_data); |
| 494 | void nfa_ee_api_set_tech_cfg(tNFA_EE_MSG* p_data); |
| 495 | void nfa_ee_api_set_proto_cfg(tNFA_EE_MSG* p_data); |
| 496 | void nfa_ee_api_add_aid(tNFA_EE_MSG* p_data); |
| 497 | void nfa_ee_api_remove_aid(tNFA_EE_MSG* p_data); |
Love Khanna | 1d06277 | 2018-04-10 21:10:02 +0530 | [diff] [blame^] | 498 | void nfa_ee_api_add_sys_code(tNFA_EE_MSG* p_data); |
| 499 | void nfa_ee_api_remove_sys_code(tNFA_EE_MSG* p_data); |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 500 | void nfa_ee_api_lmrt_size(tNFA_EE_MSG* p_data); |
| 501 | void nfa_ee_api_update_now(tNFA_EE_MSG* p_data); |
| 502 | void nfa_ee_api_connect(tNFA_EE_MSG* p_data); |
| 503 | void nfa_ee_api_send_data(tNFA_EE_MSG* p_data); |
| 504 | void nfa_ee_api_disconnect(tNFA_EE_MSG* p_data); |
| 505 | void nfa_ee_report_disc_done(bool notify_sys); |
| 506 | void nfa_ee_nci_disc_rsp(tNFA_EE_MSG* p_data); |
| 507 | void nfa_ee_nci_disc_ntf(tNFA_EE_MSG* p_data); |
| 508 | void nfa_ee_nci_mode_set_rsp(tNFA_EE_MSG* p_data); |
| 509 | void nfa_ee_nci_wait_rsp(tNFA_EE_MSG* p_data); |
| 510 | void nfa_ee_nci_conn(tNFA_EE_MSG* p_data); |
| 511 | void nfa_ee_nci_action_ntf(tNFA_EE_MSG* p_data); |
| 512 | void nfa_ee_nci_disc_req_ntf(tNFA_EE_MSG* p_data); |
| 513 | void nfa_ee_rout_timeout(tNFA_EE_MSG* p_data); |
| 514 | void nfa_ee_discv_timeout(tNFA_EE_MSG* p_data); |
| 515 | void nfa_ee_lmrt_to_nfcc(tNFA_EE_MSG* p_data); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 516 | void nfa_ee_update_rout(void); |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 517 | void nfa_ee_report_event(tNFA_EE_CBACK* p_cback, tNFA_EE_EVT event, |
| 518 | tNFA_EE_CBACK_DATA* p_data); |
| 519 | tNFA_EE_ECB* nfa_ee_find_aid_offset(uint8_t aid_len, uint8_t* p_aid, |
| 520 | int* p_offset, int* p_entry); |
Love Khanna | 1d06277 | 2018-04-10 21:10:02 +0530 | [diff] [blame^] | 521 | tNFA_EE_ECB* nfa_ee_find_sys_code_offset(uint16_t sys_code, int* p_offset, |
| 522 | int* p_entry); |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 523 | int nfa_ee_find_total_aid_len(tNFA_EE_ECB* p_cb, int start_entry); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 524 | void nfa_ee_start_timer(void); |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 525 | void nfa_ee_reg_cback_enable_done(tNFA_EE_ENABLE_DONE_CBACK* p_cback); |
| 526 | void nfa_ee_report_update_evt(void); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 527 | |
Ruchi Kandoi | 6fca02d | 2017-01-30 14:28:16 -0800 | [diff] [blame] | 528 | extern void nfa_ee_proc_hci_info_cback(void); |
| 529 | void nfa_ee_check_disable(void); |
| 530 | bool nfa_ee_restore_ntf_done(void); |
Evan Chu | 45e6823 | 2013-05-01 11:29:02 -0700 | [diff] [blame] | 531 | void nfa_ee_check_restore_complete(void); |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 532 | |
The Android Open Source Project | e9df6ba | 2012-12-13 14:55:37 -0800 | [diff] [blame] | 533 | #endif /* NFA_P2P_INT_H */ |