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