1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu *  Copyright (C) 2011-2014 Broadcom Corporation
4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  you may not use this file except in compliance with the License.
7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  You may obtain a copy of the License at:
8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  See the License for the specific language governing permissions and
15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  limitations under the License.
16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  This is the private interface file for NFA_CE
22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_CE_INT_H
25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_CE_INT_H
26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_api.h"
28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_ce_api.h"
29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_dm_int.h"
306fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#include "nfa_sys.h"
31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfc_api.h"
32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*****************************************************************************
34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**  Constants and data types
35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/
36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* ce status callback */
386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void tNFA_CE_STATUS_CBACK(tNFA_STATUS status);
39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* CE events */
416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoienum {
426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  /* device manager local device API events */
436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_API_CFG_LOCAL_TAG_EVT = NFA_SYS_EVT_START(NFA_ID_CE),
446fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_API_REG_LISTEN_EVT,
456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_API_DEREG_LISTEN_EVT,
466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_API_CFG_ISODEP_TECH_EVT,
476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_ACTIVATE_NTF_EVT,
486fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_DEACTIVATE_NTF_EVT,
496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi
506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_MAX_EVT
51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project};
52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Listen registration types */
546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoienum {
556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_REG_TYPE_NDEF,
566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_REG_TYPE_ISO_DEP,
576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_REG_TYPE_FELICA,
586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFA_CE_REG_TYPE_UICC
59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project};
60512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef uint8_t tNFA_CE_REG_TYPE;
61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for NFA_CE_API_CFG_LOCAL_TAG_EVT */
636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFC_HDR hdr;
656fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_PROTOCOL_MASK protocol_mask;
666fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t* p_ndef_data;
676fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint16_t ndef_cur_size;
686fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint16_t ndef_max_size;
696fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  bool read_only;
706fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t uid_len;
716fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t uid[NFA_MAX_UID_LEN];
72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_CE_API_CFG_LOCAL_TAG;
73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for NFA_CE_ACTIVATE_NTF_EVT */
756fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
766fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFC_HDR hdr;
776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFC_ACTIVATE_DEVT* p_activation_params;
78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_CE_ACTIVATE_NTF;
79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for NFA_CE_API_REG_LISTEN_EVT */
816fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFC_HDR hdr;
836fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CONN_CBACK* p_conn_cback;
84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
856fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CE_REG_TYPE listen_type;
86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
876fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  /* For registering Felica */
886fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint16_t system_code;
896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t nfcid2[NCI_RF_F_UID_LEN];
9053d98cc8b51a44d8c7f0a376acfd842c937df40aLove Khanna  uint8_t t3tPmm[NCI_T3T_PMM_LEN];
91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
926fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  /* For registering Type-4 */
936fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t aid[NFC_MAX_AID_LEN]; /* AID to listen for (For type-4 only)  */
946fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t aid_len;              /* AID length                           */
95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  /* For registering UICC */
976fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_HANDLE ee_handle;
986fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_TECHNOLOGY_MASK tech_mask;
99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_CE_API_REG_LISTEN;
100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for NFA_CE_API_DEREG_LISTEN_EVT */
1026fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
1036fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFC_HDR hdr;
1046fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_HANDLE handle;
1056fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint32_t listen_info;
106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_CE_API_DEREG_LISTEN;
107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* union of all data types */
1096fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef union {
1106fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  /* GKI event buffer header */
1116fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  NFC_HDR hdr;
1126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CE_API_CFG_LOCAL_TAG local_tag;
1136fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CE_API_REG_LISTEN reg_listen;
1146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CE_API_DEREG_LISTEN dereg_listen;
1156fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CE_ACTIVATE_NTF activate_ntf;
116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_CE_MSG;
117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************
119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** LISTEN_INFO definitions
120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/
12146e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Entry 0 is reserved for local NDEF tag */
12246e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_CE_LISTEN_INFO_IDX_NDEF 0
1236fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_CE_LISTEN_INFO_IDX_INVALID (NFA_CE_LISTEN_INFO_MAX)
124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Flags for listen request */
12646e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* LISTEN_INFO entry is in use                                      */
12746e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_CE_LISTEN_INFO_IN_USE 0x00000001
12846e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* NDEF is read-only                                                */
12946e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFC_CE_LISTEN_INFO_READONLY_NDEF 0x00000010
13046e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* App has not been notified of ACTIVATE_EVT yet for this T4T AID   */
13146e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_CE_LISTEN_INFO_T4T_ACTIVATE_PND 0x00000040
13246e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* This is a listen_info for T4T AID                                */
13346e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_CE_LISTEN_INFO_T4T_AID 0x00000080
13446e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* App has not been notified of LISTEN_START yet                    */
13546e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_CE_LISTEN_INFO_START_NTF_PND 0x00000100
13646e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* This is a listen_info for non-NDEF Felica                        */
13746e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_CE_LISTEN_INFO_FELICA 0x00000200
13846e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* This is a listen_info for UICC                                   */
13946e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_CE_LISTEN_INFO_UICC 0x00000400
140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Structure for listen look up table */
1426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
1436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint32_t flags;
1446fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CONN_CBACK* p_conn_cback; /* Callback for this listen request */
1456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_PROTOCOL_MASK
1466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      protocol_mask;          /* Mask of protocols for this listen request    */
1476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_HANDLE rf_disc_handle; /* RF Discover handle */
1486fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi
1496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  /* For host tag emulation (NFA_CeRegisterVirtualT4tSE and
1506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi   * NFA_CeRegisterT4tAidOnDH) */
15153d98cc8b51a44d8c7f0a376acfd842c937df40aLove Khanna  uint8_t t3t_pmm[NCI_T3T_PMM_LEN];
1526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t t3t_nfcid2[NCI_RF_F_UID_LEN];
1536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint16_t t3t_system_code; /* Type-3 system code */
1546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t
1556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      t4t_aid_handle; /* Type-4 aid callback handle (from CE_T4tRegisterAID) */
1566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi
1576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  /* For UICC */
1586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_HANDLE ee_handle;
1596fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_TECHNOLOGY_MASK tech_mask; /* listening technologies               */
1606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_DM_DISC_TECH_PROTO_MASK
1616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      tech_proto_mask; /* listening technologies and protocols */
162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_CE_LISTEN_INFO;
163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************/
165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Internal flags for nfa_ce */
16746e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Deactivation locally initiated by application */
16846e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_CE_FLAGS_APP_INIT_DEACTIVATION 0x00000001
16946e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Tag is in listen active or sleep state        */
17046e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_CE_FLAGS_LISTEN_ACTIVE_SLEEP 0x00000002
171512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef uint32_t tNFA_CE_FLAGS;
172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA_CE control block */
1746fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct {
1756fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t* p_scratch_buf; /* Scratch buffer for write requests    */
1766fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint32_t scratch_buf_size;
177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
1786fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFC_ACTIVATE_DEVT activation_params; /* Activation params        */
1796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CE_FLAGS flags;                  /* internal flags           */
1806fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CONN_CBACK* p_active_conn_cback; /* Callback of activated CE */
181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
1826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  /* listen_info table (table of listen paramters and app callbacks) */
1836fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_CE_LISTEN_INFO
1846fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      listen_info[NFA_CE_LISTEN_INFO_MAX]; /* listen info table */
1856fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t idx_cur_active; /* listen_info index for currently activated CE */
1866fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t idx_wild_card;  /* listen_info index for T4T wild card CE */
187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
1886fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_DM_DISC_TECH_PROTO_MASK
1896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi      isodep_disc_mask; /* the technology/protocol mask for ISO-DEP */
190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
1916fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  /* Local ndef tag info */
1926fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint8_t* p_ndef_data;
1936fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint16_t ndef_cur_size;
1946fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  uint16_t ndef_max_size;
195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
1966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi  tNFA_SYS_EVT_HDLR* p_vs_evt_hdlr; /* VS event handler */
197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_CE_CB;
198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern tNFA_CE_CB nfa_ce_cb;
199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* type definition for action functions */
2016fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef bool (*tNFA_CE_ACTION)(tNFA_CE_MSG* p_data);
202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
20353d98cc8b51a44d8c7f0a376acfd842c937df40aLove Khannaextern uint8_t NFC_GetNCIVersion();
20453d98cc8b51a44d8c7f0a376acfd842c937df40aLove Khanna
205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Action function prototypes */
2066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoibool nfa_ce_api_cfg_local_tag(tNFA_CE_MSG* p_ce_msg);
2076fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoibool nfa_ce_api_reg_listen(tNFA_CE_MSG* p_ce_msg);
2086fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoibool nfa_ce_api_dereg_listen(tNFA_CE_MSG* p_ce_msg);
2096fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoibool nfa_ce_api_cfg_isodep_tech(tNFA_CE_MSG* p_ce_msg);
2106fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoibool nfa_ce_activate_ntf(tNFA_CE_MSG* p_ce_msg);
2116fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoibool nfa_ce_deactivate_ntf(tNFA_CE_MSG* p_ce_msg);
212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Internal function prototypes */
2146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_ce_t3t_generate_rand_nfcid(uint8_t nfcid2[NCI_RF_F_UID_LEN]);
2156fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoibool nfa_ce_hdl_event(NFC_HDR* p_msg);
2166fca02d5010de7bd31d83b853c32138021da5f29Ruchi KandoitNFC_STATUS nfa_ce_set_content(void);
2176fca02d5010de7bd31d83b853c32138021da5f29Ruchi KandoitNFA_STATUS nfa_ce_start_listening(void);
2186fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_ce_remove_listen_info_entry(uint8_t listen_info_idx, bool notify_app);
2196fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_ce_sys_disable(void);
2206fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_ce_free_scratch_buf(void);
2216fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoibool nfa_ce_restart_listen_check(void);
222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFA_DM_INT_H */
223