1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu * Copyright (C) 2010-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 public interface file for NFA HCI, Broadcom's NFC 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * application layer for mobile phones. 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_HCI_API_H 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_API_H 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_api.h" 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Constants and data types 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA HCI Debug constants */ 356fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_DEBUG_DISPLAY_CB 0 366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_DEBUG_SIM_HCI_EVENT 1 376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_DEBUG_ENABLE_LOOPBACK 101 386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_DEBUG_DISABLE_LOOPBACK 102 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA HCI callback events */ 416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_REGISTER_EVT \ 426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 0x00 /* Application registered */ 4346e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Application deregistered */ 4446e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_DEREGISTER_EVT 0x01 4546e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Retrieved gates,pipes assoc. to application */ 4646e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_GET_GATE_PIPE_LIST_EVT 0x02 476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_ALLOCATE_GATE_EVT \ 486fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 0x03 /* A generic gate allocated to the application */ 496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_DEALLOCATE_GATE_EVT \ 506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 0x04 /* A generic gate is released */ 516fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_CREATE_PIPE_EVT \ 526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 0x05 /* Pipe is created */ 536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_OPEN_PIPE_EVT \ 546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 0x06 /* Pipe is opened / could not open */ 556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_CLOSE_PIPE_EVT \ 566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 0x07 /* Pipe is closed / could not close */ 576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_DELETE_PIPE_EVT \ 586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 0x08 /* Pipe is deleted */ 596fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_HOST_LIST_EVT \ 606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi 0x09 /* Received list of Host from Host controller */ 6146e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* HCI subsytem initialized */ 6246e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_INIT_EVT 0x0A 6346e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* HCI subsytem exited */ 6446e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_EXIT_EVT 0x0B 6546e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Response recvd to cmd sent on app owned pipe */ 6646e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_RSP_RCVD_EVT 0x0C 6746e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Response sent on app owned pipe */ 6846e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_RSP_SENT_EVT 0x0D 6946e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Command sent on app owned pipe */ 7046e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_CMD_SENT_EVT 0x0E 7146e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Event sent on app owned pipe */ 7246e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_EVENT_SENT_EVT 0x0F 7346e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Command received on app owned pipe */ 7446e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_CMD_RCVD_EVT 0x10 7546e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Event received on app owned pipe */ 7646e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_EVENT_RCVD_EVT 0x11 7746e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Registry read command sent */ 7846e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_GET_REG_CMD_EVT 0x12 7946e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Registry write command sent */ 8046e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_SET_REG_CMD_EVT 0x13 8146e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Received response to read registry command */ 8246e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_GET_REG_RSP_EVT 0x14 8346e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Received response to write registry command */ 8446e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_SET_REG_RSP_EVT 0x15 8546e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* A static pipe is added */ 8646e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_HCI_ADD_STATIC_PIPE_EVT 0x16 87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 88512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef uint8_t tNFA_HCI_EVT; 89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 9046e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Max application name length */ 9146e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_MAX_HCI_APP_NAME_LEN 0x10 9246e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Max HCI command length */ 9346e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_MAX_HCI_CMD_LEN 255 9446e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Max HCI event length */ 9546e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_MAX_HCI_RSP_LEN 255 9646e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Max HCI event length */ 97ae933f8c78dbe46f2cc3cd2a7cacccfb359e3d4fRuchi Kandoi#define NFA_MAX_HCI_EVENT_LEN 300 9846e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi/* Max HCI data length */ 9946e6e28414b5e37ffad65353916520fc56ea3a86Ruchi Kandoi#define NFA_MAX_HCI_DATA_LEN 260 100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA HCI PIPE states */ 1026fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_PIPE_CLOSED 0x00 /* Pipe is closed */ 1036fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi#define NFA_HCI_PIPE_OPENED 0x01 /* Pipe is opened */ 104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 105512ee63c7cc8feb016863e507a5d33cd0f4242bfRuchi Kandoitypedef uint8_t tNFA_HCI_PIPE_STATE; 106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Dynamic pipe control block */ 1076fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1086fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t pipe_id; /* Pipe ID */ 1096fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_PIPE_STATE pipe_state; /* State of the Pipe */ 1106fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t local_gate; /* local gate id */ 1116fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t dest_host; /* Peer host to which this pipe is connected */ 1126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t dest_gate; /* Peer gate to which this pipe is connected */ 113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_PIPE_INFO; 114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_REGISTER_EVT */ 1166fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1176fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of registration */ 1186fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HANDLE hci_handle; /* Handle assigned to the application */ 1196fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t num_pipes; /* Number of dynamic pipes exist for the application */ 1206fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t num_gates; /* Number of generic gates exist for the application */ 121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_REGISTER; 122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_DEREGISTER_EVT */ 1246fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1256fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of deregistration */ 126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_DEREGISTER; 127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_GET_GATE_PIPE_LIST_EVT */ 1296fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1306fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; 1316fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t num_pipes; /* Number of dynamic pipes exist for the application */ 1326fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_PIPE_INFO 1336fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi pipe[NFA_HCI_MAX_PIPE_CB]; /* List of pipe created for the application */ 1346fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t num_gates; /* Number of generic gates exist for the application */ 1356fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t gate[NFA_HCI_MAX_GATE_CB]; /* List of generic gates allocated to the 1366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi application */ 1376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t num_uicc_created_pipes; /* Number of pipes created by UICC host */ 1386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_PIPE_INFO uicc_created_pipe 1396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi [NFA_HCI_MAX_PIPE_CB]; /* Pipe information of the UICC created pipe */ 140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_GET_GATE_PIPE_LIST; 141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_ALLOCATE_GATE_EVT */ 1436fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1446fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of response to allocate gate request */ 1456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t gate; /* The gate allocated to the application */ 146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_ALLOCATE_GATE; 147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_DEALLOCATE_GATE_EVT */ 1496fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1506fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of response to deallocate gate request */ 1516fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t gate; /* The gate deallocated from the application */ 152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_DEALLOCATE_GATE; 153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_CREATE_PIPE_EVT */ 1556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of creating dynamic pipe for the application */ 1576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t pipe; /* The pipe created for the application */ 1586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t 1596fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi source_gate; /* DH host gate to which the one end of pipe is attached */ 1606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t 1616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi dest_host; /* Destination host whose gate is the other end of the pipe is 1626fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi attached to */ 1636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t dest_gate; /* Destination host gate to which the other end of pipe is 1646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi attached */ 165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_CREATE_PIPE; 166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_OPEN_PIPE_EVT */ 1686fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1696fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of open pipe operation */ 1706fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t pipe; /* The dynamic pipe for open operation */ 1716fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi} tNFA_HCI_OPEN_PIPE; 172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_CLOSE_PIPE_EVT */ 1746fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1756fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of close pipe operation */ 1766fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t pipe; /* The dynamic pipe for close operation */ 1776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi} tNFA_HCI_CLOSE_PIPE; 178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_DELETE_PIPE_EVT */ 1806fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1816fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of delete pipe operation */ 1826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t pipe; /* The dynamic pipe for delete operation */ 183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_DELETE_PIPE; 184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 185e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_HOST_LIST_EVT */ 1866fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1876fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status og get host list operation */ 1886fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t num_hosts; /* Number of hosts in the host network */ 1896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t 1906fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi host[NFA_HCI_MAX_HOST_IN_NETWORK]; /* List of host in the host network */ 191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_HOST_LIST; 192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_RSP_RCVD_EVT */ 1946fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 1956fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of RSP to HCP CMD sent */ 1966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t pipe; /* The pipe on which HCP packet is exchanged */ 1976fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t rsp_code; /* Response id */ 1986fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint16_t rsp_len; /* Response parameter length */ 1996fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t rsp_data[NFA_MAX_HCI_RSP_LEN]; /* Response received */ 200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_RSP_RCVD; 201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_EVENT_RCVD_EVT */ 2036fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 2046fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of Event received */ 2056fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t pipe; /* The pipe on which HCP EVT packet is received */ 2066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t evt_code; /* HCP EVT id */ 2076fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint16_t evt_len; /* HCP EVT parameter length */ 2086fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t* p_evt_buf; /* HCP EVT Parameter */ 209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_EVENT_RCVD; 210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_CMD_RCVD_EVT */ 2126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 2136fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of Command received */ 2146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t pipe; /* The pipe on which HCP CMD packet is received */ 2156fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t cmd_code; /* HCP CMD id */ 2166fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint16_t cmd_len; /* HCP CMD parameter length */ 2176fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t cmd_data[NFA_MAX_HCI_CMD_LEN]; /* HCP CMD Parameter */ 218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_CMD_RCVD; 219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_INIT_EVT */ 2216fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 2226fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of Enabling HCI Network */ 223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_INIT; 224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_EXIT_EVT */ 2266fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 2276fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of Disabling HCI Network */ 228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_EXIT; 229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_RSP_SENT_EVT */ 2316fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 2326fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of HCP response send operation */ 233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_RSP_SENT; 234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_CMD_SENT_EVT */ 2366fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 2376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of Command send operation */ 238e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_CMD_SENT; 239e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 240e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_EVENT_SENT_EVT */ 2416fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 2426fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of Event send operation */ 243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_EVENT_SENT; 244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_ADD_STATIC_PIPE_EVT */ 2466fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 2476fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of adding proprietary pipe */ 248e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_ADD_STATIC_PIPE_EVT; 249e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 250e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for all registry-related events */ 2516fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef struct { 2526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* Status of Registry operation */ 2536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t pipe; /* Pipe on whose registry is of interest */ 2546fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t index; /* Index of the registry operated */ 2556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t data_len; /* length of the registry parameter */ 2566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t reg_data[NFA_MAX_HCI_DATA_LEN]; /* Registry parameter */ 257e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_REGISTRY; 258e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Union of all hci callback structures */ 2606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef union { 2616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_REGISTER hci_register; /* NFA_HCI_REGISTER_EVT */ 2626fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_DEREGISTER hci_deregister; /* NFA_HCI_DEREGISTER_EVT */ 2636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_GET_GATE_PIPE_LIST gates_pipes; /* NFA_HCI_GET_GATE_PIPE_LIST_EVT */ 2646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_ALLOCATE_GATE allocated; /* NFA_HCI_ALLOCATE_GATE_EVT */ 2656fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_DEALLOCATE_GATE deallocated; /* NFA_HCI_DEALLOCATE_GATE_EVT */ 2666fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_CREATE_PIPE created; /* NFA_HCI_CREATE_PIPE_EVT */ 2676fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_OPEN_PIPE opened; /* NFA_HCI_OPEN_PIPE_EVT */ 2686fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_CLOSE_PIPE closed; /* NFA_HCI_CLOSE_PIPE_EVT */ 2696fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_DELETE_PIPE deleted; /* NFA_HCI_DELETE_PIPE_EVT */ 2706fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_HOST_LIST hosts; /* NFA_HCI_HOST_LIST_EVT */ 2716fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_RSP_RCVD rsp_rcvd; /* NFA_HCI_RSP_RCVD_EVT */ 2726fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_RSP_SENT rsp_sent; /* NFA_HCI_RSP_SENT_EVT */ 2736fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_CMD_SENT cmd_sent; /* NFA_HCI_CMD_SENT_EVT */ 2746fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_EVENT_SENT evt_sent; /* NFA_HCI_EVENT_SENT_EVT */ 2756fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_CMD_RCVD cmd_rcvd; /* NFA_HCI_CMD_RCVD_EVT */ 2766fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_EVENT_RCVD rcvd_evt; /* NFA_HCI_EVENT_RCVD_EVT */ 2776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_STATUS status; /* status of api command request */ 2786fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_REGISTRY registry; /* all registry-related events - 2796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi NFA_HCI_GET_REG_CMD_EVT, 2806fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi NFA_HCI_SET_REG_CMD_EVT, 2816fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi NFA_HCI_GET_REG_RSP_EVT, 2826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi NFA_HCI_SET_REG_RSP_EVT */ 2836fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_INIT hci_init; /* NFA_HCI_INIT_EVT */ 2846fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_EXIT hci_exit; /* NFA_HCI_EXIT_EVT */ 2856fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_HCI_ADD_STATIC_PIPE_EVT pipe_added; /* NFA_HCI_ADD_STATIC_PIPE_EVT */ 286e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_EVT_DATA; 287e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 288e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA HCI callback */ 2896fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoitypedef void(tNFA_HCI_CBACK)(tNFA_HCI_EVT event, tNFA_HCI_EVT_DATA* p_data); 290e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 291e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 292e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** External Function Declarations 293e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 294e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 295e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 296e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 297e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciRegister 298e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 299e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function will register an application with hci and 300e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** returns an application handle and provides a mechanism to 301552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** register a callback with HCI to receive NFA HCI event 302552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** notification. When the application is registered (or if an 303552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** error occurs), the app will be notified with 304552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** NFA_HCI_REGISTER_EVT. Previous session information 305552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** including allocated gates, created pipes and pipes states 306552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** will be returned as part of tNFA_HCI_REGISTER data. 307e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 308e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 309e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 310e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 311e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 3126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciRegister(char* p_app_name, tNFA_HCI_CBACK* p_cback, 3136fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi bool b_send_conn_evts); 314e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 315e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 316e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 317e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciGetGateAndPipeList 318e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 319e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function will retrieve the list of gates allocated to 320e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** the application and list of dynamic pipes created for the 321e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** application. The app will be notified with 322e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_HCI_GET_GATE_PIPE_LIST_EVT. List of allocated dynamic 323e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** gates to the application and list of pipes created by the 324e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** application will be returned as part of 325e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** tNFA_HCI_GET_GATE_PIPE_LIST data. 326e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 327e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 328e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 329e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 330e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 3316fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciGetGateAndPipeList(tNFA_HANDLE hci_handle); 332e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 333e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 334e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 335e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciDeregister 336e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 337e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to deregister an application 338e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** from HCI. The app will be notified by NFA_HCI_DEREGISTER_EVT 339552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** after deleting all the pipes owned by the app and 340552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** deallocating all the gates allocated to the app or if an 341552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** error occurs. The app can release the buffer provided for 342552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** collecting long APDUs after receiving 343552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** NFA_HCI_DEREGISTER_EVT. Even if deregistration fails, the 344552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** app has to register again to provide a new cback function 345552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** and event buffer for receiving long APDUs. 346552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** 347552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** Returns NFA_STATUS_OK if the application is deregistered 348552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** successfully 349e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 350e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 351e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 3526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciDeregister(char* p_app_name); 353e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 354e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 355e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 356e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciAllocGate 357e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 358a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu** Description This function will allocate the gate if any specified or an 359a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu** available generic gate for the app to provide an entry point 360a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu** for a particular service to other host or to establish 361a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu** communication with other host. When the gate is 362a24be4f06674b2707b57904deaa0dff5a95823bdEvan Chu** allocated (or if an error occurs), the app will be notified 363552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** with NFA_HCI_ALLOCATE_GATE_EVT with the gate id. The 364552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** allocated Gate information will be stored in non volatile 365552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** memory. 366e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 367e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if this API started 368e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED if no generic gate is available 369e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 370e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 3716fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciAllocGate(tNFA_HANDLE hci_handle, uint8_t gate); 372e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 373e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 374e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 375e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciDeallocGate 376e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 377e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function will release the specified gate that was 378e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** previously allocated to the application. When the generic 379e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** gate is released (or if an error occurs), the app will be 380e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** notified with NFA_HCI_DEALLOCATE_GATE_EVT with the gate id. 381e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** The allocated Gate information will be deleted from non 382e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** volatile memory and all the associated pipes are deleted 383e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** by informing host controller. 384e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 385e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 386e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_BAD_HANDLE if handle is not valid 387e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 388e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 389e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 3906fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciDeallocGate(tNFA_HANDLE conn_handle, uint8_t gate); 391e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 392e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 393e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 394e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciGetHostList 395e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 396e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function will request the host controller to return the 397e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** list of hosts that are present in the host network. When 398e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** host controller responds with the host list (or if an error 399e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** occurs), the app will be notified with NFA_HCI_HOST_LIST_EVT 400e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 401e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 402e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_BAD_HANDLE if handle is not valid 403e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 404e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 405e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 4066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciGetHostList(tNFA_HANDLE hci_handle); 407e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 408e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 409e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 410e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciCreatePipe 411e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 412e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to create a dynamic pipe with the 413e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** specified host. When the dynamic pipe is created (or 414e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** if an error occurs), the app will be notified with 415e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_HCI_CREATE_PIPE_EVT with the pipe id. If a pipe exists 416e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** between the two gates passed as argument and if it was 417e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** created earlier by the calling application then the pipe 418e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** id of the existing pipe will be returned and a new pipe 419e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** will not be created. After successful creation of pipe, 420e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** registry entry will be created for the dynamic pipe and 421e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** all information related to the pipe will be stored in non 422e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** volatile memory. 423e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 424e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 425e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 426e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 427e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 4286fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciCreatePipe(tNFA_HANDLE hci_handle, 4296fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t source_gate_id, uint8_t dest_host, 4306fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t dest_gate); 431e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 432e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 433e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 434e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciOpenPipe 435e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 436e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to open a dynamic pipe. 437e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** When the dynamic pipe is opened (or 438e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** if an error occurs), the app will be notified with 439e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_HCI_OPEN_PIPE_EVT with the pipe id. 440e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 441e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 442e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 443e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 444e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 4456fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciOpenPipe(tNFA_HANDLE hci_handle, uint8_t pipe); 446e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 447e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 448e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 449e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciGetRegistry 450e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 451e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function requests a peer host to return the desired 452e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** registry field value for the gate that the pipe is on. 453e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 454e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** When the peer host responds,the app is notified with 455e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_HCI_GET_REG_RSP_EVT or 456e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** if an error occurs in sending the command the app will be 457e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** notified by NFA_HCI_CMD_SENT_EVT 458e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 459e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 460e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 461e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 462e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 4636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciGetRegistry(tNFA_HANDLE hci_handle, uint8_t pipe, 4646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t reg_inx); 465e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 466e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 467e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 468e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciSendCommand 469e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 470e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to send a command on a pipe created 471e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** by the application. 472e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** The app will be notified by NFA_HCI_CMD_SENT_EVT if an error 473e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** occurs. 474e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** When the peer host responds,the app is notified with 475e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_HCI_RSP_RCVD_EVT 476e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 477e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 478e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 479e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 480e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 4816fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciSendCommand(tNFA_HANDLE hci_handle, uint8_t pipe, 4826fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t cmd_code, uint16_t cmd_size, 4836fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t* p_data); 484e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 485e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 486e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 487e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciSendEvent 488e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 489e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to send any event on a pipe created 490e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** by the application. 491e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** The app will be notified by NFA_HCI_EVENT_SENT_EVT 492e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** after successfully sending the event on the specified pipe 493e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** or if an error occurs. The application should wait for this 494e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** event before releasing event buffer passed as argument. 495e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** If the app is expecting a response to the event then it can 496e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** provide response buffer for collecting the response. If it 497e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** provides a response buffer it should also provide response 498e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** timeout indicating duration validity of the response buffer. 499e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Maximum of NFA_MAX_HCI_EVENT_LEN bytes APDU can be received 500e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** using internal buffer if no response buffer is provided by 501e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** the application. The app will be notified by 502e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_HCI_EVENT_RCVD_EVT after receiving the response event 503e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** or on timeout if app provided response buffer. 504e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** If response buffer is provided by the application, it should 505e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** wait for this event before releasing the response buffer. 506e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 507e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 508e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 509e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 510e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 5116fca02d5010de7bd31d83b853c32138021da5f29Ruchi KandoitNFA_STATUS NFA_HciSendEvent(tNFA_HANDLE hci_handle, uint8_t pipe, 5126fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t evt_code, uint16_t evt_size, 5136fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t* p_data, uint16_t rsp_size, 5146fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t* p_rsp_buf, uint16_t rsp_timeout); 515e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 516e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 517e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 518e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciClosePipe 519e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 520e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to close a dynamic pipe. 521e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** When the dynamic pipe is closed (or 522e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** if an error occurs), the app will be notified with 523e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_HCI_CLOSE_PIPE_EVT with the pipe id. 524e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 525e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 526e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 527e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 528e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 5296fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciClosePipe(tNFA_HANDLE hci_handle, uint8_t pipe); 530e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 531e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 532e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 533e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciDeletePipe 534e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 535e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to delete a particular dynamic pipe. 536e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** When the dynamic pipe is deleted (or if an error occurs), 537e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** the app will be notified with NFA_HCI_DELETE_PIPE_EVT with 538e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** the pipe id. After successful deletion of pipe, registry 539e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** entry will be deleted for the dynamic pipe and all 540e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** information related to the pipe will be deleted from non 541e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** volatile memory. 542e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 543e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 544e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_BAD_HANDLE if handle is not valid 545e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 546e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 547e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 5486fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciDeletePipe(tNFA_HANDLE hci_handle, uint8_t pipe); 549e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 550e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 551e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 552e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciAddStaticPipe 553e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 554e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to add a static pipe for sending 555552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** 7816 APDUs. When the static pipe is added (or if an error 556552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** occurs), the app will be notified with 557552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** NFA_HCI_ADD_STATIC_PIPE_EVT with status. 558e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 559e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns NFA_STATUS_OK if successfully initiated 560e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** NFA_STATUS_FAILED otherwise 561e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 562e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 5636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern tNFA_STATUS NFA_HciAddStaticPipe(tNFA_HANDLE hci_handle, uint8_t host, 5646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi uint8_t gate, uint8_t pipe); 565e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 566e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 567e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 568e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function NFA_HciDebug 569e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 570e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Debug function. 571e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 572e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 5736fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoiextern void NFA_HciDebug(uint8_t action, uint8_t size, uint8_t* p_data); 574e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 575e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFA_P2P_API_H */ 576