Home | History | Annotate | Download | only in int
      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