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