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