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