nfa_hci_api.h revision e9629bad30a9f478b336ab46b8e6e02f7f87af46
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
195c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  This is the public interface file for NFA HCI, Broadcom's NFC
23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  application layer for mobile phones.
24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFA_HCI_API_H
27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_API_H
28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_api.h"
30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*****************************************************************************
32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**  Constants and data types
33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/
34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA HCI Debug constants */
36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_DEBUG_DISPLAY_CB                0
37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_DEBUG_SIM_HCI_EVENT             1
38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_DEBUG_ENABLE_LOOPBACK           101
39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_DEBUG_DISABLE_LOOPBACK          102
40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA HCI callback events */
42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_REGISTER_EVT	                0x00    /* Application registered                       */
43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_DEREGISTER_EVT                  0x01    /* Application deregistered                     */
44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_GET_GATE_PIPE_LIST_EVT          0x02    /* Retrieved gates,pipes assoc. to application  */
45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_ALLOCATE_GATE_EVT	            0x03    /* A generic gate allocated to the application  */
46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_DEALLOCATE_GATE_EVT	            0x04    /* A generic gate is released                   */
47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_CREATE_PIPE_EVT         	    0x05    /* Pipe is created                              */
48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_OPEN_PIPE_EVT         	        0x06    /* Pipe is opened / could not open              */
49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_CLOSE_PIPE_EVT         	        0x07    /* Pipe is closed / could not close             */
50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_DELETE_PIPE_EVT         	    0x08    /* Pipe is deleted                              */
51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_HOST_LIST_EVT       	        0x09    /* Received list of Host from Host controller   */
52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_INIT_EVT                        0x0A    /* HCI subsytem initialized                     */
53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_EXIT_EVT                        0x0B    /* HCI subsytem exited                          */
54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_RSP_RCVD_EVT                    0x0C    /* Response recvd to cmd sent on app owned pipe */
55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_RSP_SENT_EVT                    0x0D    /* Response sent on app owned pipe              */
56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_CMD_SENT_EVT                    0x0E    /* Command sent on app owned pipe               */
57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_EVENT_SENT_EVT                  0x0F    /* Event sent on app owned pipe                 */
58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_CMD_RCVD_EVT                    0x10    /* Command received on app owned pipe           */
59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_EVENT_RCVD_EVT                  0x11    /* Event received on app owned pipe             */
60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_GET_REG_CMD_EVT                 0x12    /* Registry read command sent                   */
61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_SET_REG_CMD_EVT                 0x13    /* Registry write command sent                  */
62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_GET_REG_RSP_EVT                 0x14    /* Received response to read registry command   */
63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_SET_REG_RSP_EVT                 0x15    /* Received response to write registry command  */
64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_HCI_ADD_STATIC_PIPE_EVT             0x16    /* A static pipe is added                       */
65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_HCI_EVT;
67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_MAX_HCI_APP_NAME_LEN                0x10    /* Max application name length */
69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_MAX_HCI_CMD_LEN                     255     /* Max HCI command length */
70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_MAX_HCI_RSP_LEN                     255     /* Max HCI event length */
71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_MAX_HCI_EVENT_LEN                   260     /* Max HCI event length */
72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_MAX_HCI_DATA_LEN                    260     /* Max HCI data length */
73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA HCI PIPE states */
755c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFA_HCI_PIPE_CLOSED                     0x00    /* Pipe is closed */
765c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFA_HCI_PIPE_OPENED                     0x01    /* Pipe is opened */
77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tNFA_HCI_PIPE_STATE;
79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Dynamic pipe control block */
80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
825c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8                   pipe_id;                    /* Pipe ID */
835c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_HCI_PIPE_STATE     pipe_state;                 /* State of the Pipe */
845c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8                   local_gate;                 /* local gate id */
855c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8                   dest_host;                  /* Peer host to which this pipe is connected */
865c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8                   dest_gate;                  /* Peer gate to which this pipe is connected */
87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_PIPE_INFO;
88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_REGISTER_EVT */
90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
925c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS         status;                         /* Status of registration */
935c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_HANDLE         hci_handle;                     /* Handle assigned to the application */
945c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               num_pipes;                      /* Number of dynamic pipes exist for the application */
955c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               num_gates;                      /* Number of generic gates exist for the application */
96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_REGISTER;
97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_DEREGISTER_EVT */
99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1015c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS         status;                         /* Status of deregistration */
102e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_DEREGISTER;
103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_GET_GATE_PIPE_LIST_EVT */
105e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_STATUS         status;
1085c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               num_pipes;                      /* Number of dynamic pipes exist for the application */
1095c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_HCI_PIPE_INFO  pipe[NFA_HCI_MAX_PIPE_CB];      /* List of pipe created for the application */
1105c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               num_gates;                      /* Number of generic gates exist for the application */
1115c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               gate[NFA_HCI_MAX_GATE_CB];      /* List of generic gates allocated to the application */
1125c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               num_uicc_created_pipes;         /* Number of pipes created by UICC host */
1135c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_HCI_PIPE_INFO  uicc_created_pipe[NFA_HCI_MAX_HOST_IN_NETWORK]; /* Pipe information of the UICC created pipe */
114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_GET_GATE_PIPE_LIST;
115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_ALLOCATE_GATE_EVT */
117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1195c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of response to allocate gate request */
1205c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           gate;                               /* The gate allocated to the application */
121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_ALLOCATE_GATE;
122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_DEALLOCATE_GATE_EVT */
124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1265c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of response to deallocate gate request */
1275c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           gate;                               /* The gate deallocated from the application */
128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_DEALLOCATE_GATE;
129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_CREATE_PIPE_EVT */
131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1335c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of creating dynamic pipe for the application */
1345c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           pipe;                               /* The pipe created for the application */
1355c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           source_gate;                        /* DH host gate to which the one end of pipe is attached */
1365c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           dest_host;                          /* Destination host whose gate is the other end of the pipe is attached to */
1375c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           dest_gate;                          /* Destination host gate to which the other end of pipe is attached */
138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_CREATE_PIPE;
139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_OPEN_PIPE_EVT */
141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1435c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of open pipe operation */
1445c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           pipe;                               /* The dynamic pipe for open operation */
145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}tNFA_HCI_OPEN_PIPE;
146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_CLOSE_PIPE_EVT */
148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1505c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of close pipe operation */
1515c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           pipe;                               /* The dynamic pipe for close operation */
152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}tNFA_HCI_CLOSE_PIPE;
153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_DELETE_PIPE_EVT */
155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1575c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of delete pipe operation */
1585c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           pipe;                               /* The dynamic pipe for delete operation */
159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_DELETE_PIPE;
160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
161e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_HOST_LIST_EVT */
162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1645c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status og get host list operation */
1655c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           num_hosts;                          /* Number of hosts in the host network */
1665c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           host[NFA_HCI_MAX_HOST_IN_NETWORK];  /* List of host in the host network */
167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_HOST_LIST;
168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_RSP_RCVD_EVT */
170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1725c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of RSP to HCP CMD sent */
1735c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           pipe;                               /* The pipe on which HCP packet is exchanged */
1745c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           rsp_code;                           /* Response id */
1755c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT16          rsp_len;                            /* Response parameter length */
1765c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           rsp_data[NFA_MAX_HCI_RSP_LEN];      /* Response received */
177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_RSP_RCVD;
178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_EVENT_RCVD_EVT */
180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1825c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of Event received */
1835c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           pipe;                               /* The pipe on which HCP EVT packet is received */
1845c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           evt_code;                           /* HCP EVT id */
1855c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT16          evt_len;                            /* HCP EVT parameter length */
1865c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           *p_evt_buf;                         /* HCP EVT Parameter */
187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_EVENT_RCVD;
188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
189e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_CMD_RCVD_EVT */
190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
1925c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of Command received */
1935c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           pipe;                               /* The pipe on which HCP CMD packet is received */
1945c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           cmd_code;                           /* HCP CMD id */
1955c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT16          cmd_len;                            /* HCP CMD parameter length */
1965c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8           cmd_data[NFA_MAX_HCI_CMD_LEN];      /* HCP CMD Parameter */
197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_CMD_RCVD;
198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_INIT_EVT */
200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
2025c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of Enabling HCI Network */
203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_INIT;
204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_EXIT_EVT */
206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
2085c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of Disabling HCI Network */
209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_EXIT;
210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_RSP_SENT_EVT */
212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
2145c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of HCP response send operation */
215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_RSP_SENT;
216e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_CMD_SENT_EVT */
218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
2205c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of Command send operation */
221e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_CMD_SENT;
222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_EVENT_SENT_EVT */
224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
2265c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of Event send operation */
227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_EVENT_SENT;
228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Data for NFA_HCI_ADD_STATIC_PIPE_EVT */
230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
231e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
2325c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS     status;                             /* Status of adding proprietary pipe */
233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_ADD_STATIC_PIPE_EVT;
234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* data type for all registry-related events */
236e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct
237e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
2385c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_STATUS         status;                         /* Status of Registry operation */
2395c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               pipe;                           /* Pipe on whose registry is of interest */
2405c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               index;                          /* Index of the registry operated */
2415c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               data_len;                       /* length of the registry parameter */
2425c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    UINT8               reg_data[NFA_MAX_HCI_DATA_LEN]; /* Registry parameter */
243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_REGISTRY;
244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
246e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Union of all hci callback structures */
247e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef union
248e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
249e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_REGISTER               hci_register;   /* NFA_HCI_REGISTER_EVT           */
250e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_DEREGISTER             hci_deregister; /* NFA_HCI_DEREGISTER_EVT         */
251e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_GET_GATE_PIPE_LIST     gates_pipes;    /* NFA_HCI_GET_GATE_PIPE_LIST_EVT */
252e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_ALLOCATE_GATE          allocated;      /* NFA_HCI_ALLOCATE_GATE_EVT      */
253e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_DEALLOCATE_GATE        deallocated;    /* NFA_HCI_DEALLOCATE_GATE_EVT    */
254e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_CREATE_PIPE            created;        /* NFA_HCI_CREATE_PIPE_EVT        */
255e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_OPEN_PIPE              opened;         /* NFA_HCI_OPEN_PIPE_EVT          */
256e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_CLOSE_PIPE             closed;         /* NFA_HCI_CLOSE_PIPE_EVT         */
257e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_DELETE_PIPE            deleted;        /* NFA_HCI_DELETE_PIPE_EVT        */
258e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_HOST_LIST              hosts;          /* NFA_HCI_HOST_LIST_EVT          */
259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_RSP_RCVD               rsp_rcvd;       /* NFA_HCI_RSP_RCVD_EVT           */
260e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_RSP_SENT               rsp_sent;       /* NFA_HCI_RSP_SENT_EVT           */
261e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_CMD_SENT               cmd_sent;       /* NFA_HCI_CMD_SENT_EVT           */
262e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_EVENT_SENT             evt_sent;       /* NFA_HCI_EVENT_SENT_EVT         */
263e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_CMD_RCVD               cmd_rcvd;       /* NFA_HCI_CMD_RCVD_EVT           */
264e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_EVENT_RCVD             rcvd_evt;       /* NFA_HCI_EVENT_RCVD_EVT         */
265e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_STATUS                     status;         /* status of api command request  */
2665c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen    tNFA_HCI_REGISTRY               registry;       /* all registry-related events - NFA_HCI_GET_REG_CMD_EVT, NFA_HCI_SET_REG_CMD_EVT, NFA_HCI_GET_REG_RSP_EVT, NFA_HCI_SET_REG_RSP_EVT */
267e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_INIT                   hci_init;       /* NFA_HCI_INIT_EVT               */
268e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_EXIT                   hci_exit;       /* NFA_HCI_EXIT_EVT               */
269e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project    tNFA_HCI_ADD_STATIC_PIPE_EVT    pipe_added;     /* NFA_HCI_ADD_STATIC_PIPE_EVT    */
270e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFA_HCI_EVT_DATA;
271e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
272e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* NFA HCI callback */
273e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tNFA_HCI_CBACK) (tNFA_HCI_EVT event, tNFA_HCI_EVT_DATA *p_data);
274e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
275e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*****************************************************************************
276e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**  External Function Declarations
277e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/
278e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus
279e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern "C"
280e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{
281e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
282e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
283e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
284e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
285e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
286e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciRegister
287e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
288e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function will register an application with hci and
289e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  returns an application handle and provides a mechanism to
290e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  register a callback with HCI to receive NFA HCI event notification.
291e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  When the application is registered (or if an error occurs),
292e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  the app will be notified with NFA_HCI_REGISTER_EVT. Previous
293e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  session information including allocated gates, created pipes
294e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  and pipes states will be returned as part of tNFA_HCI_REGISTER data.
295e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
296e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
297e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
298e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
299e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
300e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciRegister (char *p_app_name, tNFA_HCI_CBACK *p_cback, BOOLEAN b_send_conn_evts);
301e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
302e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
303e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
304e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciGetGateAndPipeList
305e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
306e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function will retrieve the list of gates allocated to
307e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  the application and list of dynamic pipes created for the
308e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  application. The app will be notified with
309e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_HCI_GET_GATE_PIPE_LIST_EVT. List of allocated dynamic
310e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  gates to the application and list of pipes created by the
311e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  application will be returned as part of
312e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  tNFA_HCI_GET_GATE_PIPE_LIST data.
313e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
314e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
315e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
316e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
317e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
318e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciGetGateAndPipeList (tNFA_HANDLE hci_handle);
319e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
320e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
321e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
322e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciDeregister
323e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
324e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function is called to deregister an application
325e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  from HCI. The app will be notified by NFA_HCI_DEREGISTER_EVT
326e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  after deleting all the pipes owned by the app and deallocating
327e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  all the gates allocated to the app or if an error occurs.
328e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  The app can release the buffer provided for collecting long
329e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  APDUs after receiving NFA_HCI_DEREGISTER_EVT.
330e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Even if deregistration fails, the app has to register again
331e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  to provide a new cback function and event buffer for receiving
332e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  long APDUs.
333e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
334e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if the application is deregistered successfully
335e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
336e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
337e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
338e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciDeregister (char *p_app_name);
339e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
340e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
341e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
342e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciAllocGate
343e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
344e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function will allocate an available generic gate for
345e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  the app to provide an entry point for a particular service
346e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  to other host or to establish communication with other host.
347e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  When the generic gate is allocated (or if an error occurs),
348e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  the app will be notified with NFA_HCI_ALLOCATE_GATE_EVT with
349e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  the gate id. The allocated Gate information will be stored in
350e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  non volatile memory.
351e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
352e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if this API started
353e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_BAD_HANDLE if handle is not valid
354e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED if no generic gate is available
355e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
356e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
357e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciAllocGate (tNFA_HANDLE hci_handle);
358e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
359e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
360e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
361e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciDeallocGate
362e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
363e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function will release the specified gate that was
364e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  previously allocated to the application. When the generic
365e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  gate is released (or if an error occurs), the app will be
366e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  notified with NFA_HCI_DEALLOCATE_GATE_EVT with the gate id.
367e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  The allocated Gate information will be deleted from non
368e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  volatile memory and all the associated pipes are deleted
369e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  by informing host controller.
370e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
371e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
372e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_BAD_HANDLE if handle is not valid
373e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
374e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
375e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
376e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciDeallocGate (tNFA_HANDLE conn_handle, UINT8 gate);
377e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
378e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
379e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
380e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciGetHostList
381e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
382e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function will request the host controller to return the
383e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  list of hosts that are present in the host network. When
384e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  host controller responds with the host list (or if an error
385e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  occurs), the app will be notified with NFA_HCI_HOST_LIST_EVT
386e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
387e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
388e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_BAD_HANDLE if handle is not valid
389e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
390e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
391e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
392e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciGetHostList (tNFA_HANDLE hci_handle);
393e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
394e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
395e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
396e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciCreatePipe
397e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
398e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function is called to create a dynamic pipe with the
399e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  specified host. When the dynamic pipe is created (or
400e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  if an error occurs), the app will be notified with
401e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_HCI_CREATE_PIPE_EVT with the pipe id. If a pipe exists
402e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  between the two gates passed as argument and if it was
403e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  created earlier by the calling application then the pipe
404e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  id of the existing pipe will be returned and a new pipe
405e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  will not be created. After successful creation of pipe,
406e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  registry entry will be created for the dynamic pipe and
407e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  all information related to the pipe will be stored in non
408e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  volatile memory.
409e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
410e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
411e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
412e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
413e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
414e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciCreatePipe (tNFA_HANDLE  hci_handle,
415e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                              UINT8        source_gate_id,
416e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                              UINT8        dest_host,
417e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                              UINT8        dest_gate);
418e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
419e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
420e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
421e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciOpenPipe
422e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
423e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function is called to open a dynamic pipe.
424e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  When the dynamic pipe is opened (or
425e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  if an error occurs), the app will be notified with
426e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_HCI_OPEN_PIPE_EVT with the pipe id.
427e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
428e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
429e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
430e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
431e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
432e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciOpenPipe (tNFA_HANDLE  hci_handle, UINT8 pipe);
433e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
434e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
435e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
436e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciGetRegistry
437e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
438e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function requests a peer host to return the desired
439e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  registry field value for the gate that the pipe is on.
440e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
441e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  When the peer host responds,the app is notified with
442e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_HCI_GET_REG_RSP_EVT or
443e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  if an error occurs in sending the command the app will be
444e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  notified by NFA_HCI_CMD_SENT_EVT
445e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
446e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
447e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
448e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
449e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
450e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciGetRegistry (tNFA_HANDLE hci_handle, UINT8 pipe, UINT8 reg_inx);
451e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
452e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
453e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
454e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciSetRegistry
455e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
456e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function requests a peer host to set the desired
457e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  registry field value for the gate that the pipe is on.
458e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
459e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  When the peer host responds,the app is notified with
460e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_HCI_SET_REG_RSP_EVT or
461e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  if an error occurs in sending the command the app will be
462e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  notified by NFA_HCI_CMD_SENT_EVT
463e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
464e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
465e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
466e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
467e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
468e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciSetRegistry (tNFA_HANDLE   hci_handle,
469e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                               UINT8         pipe,
470e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                               UINT8         reg_inx,
471e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                               UINT8         data_size,
472e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                               UINT8         *p_data);
473e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
474e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
475e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
476e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciSendCommand
477e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
478e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function is called to send a command on a pipe created
479e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  by the application.
480e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  The app will be notified by NFA_HCI_CMD_SENT_EVT if an error
481e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  occurs.
482e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  When the peer host responds,the app is notified with
483e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_HCI_RSP_RCVD_EVT
484e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
485e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
486e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
487e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
488e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
489e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciSendCommand (tNFA_HANDLE hci_handle,
490e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                               UINT8       pipe,
491e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                               UINT8       cmd_code,
492e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                               UINT16      cmd_size,
493e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                               UINT8       *p_data);
494e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
495e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
496e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
497e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciSendResponse
498e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
499e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function is called to send a response on a pipe created
500e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  by the application.
501e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  The app will be notified by NFA_HCI_RSP_SENT_EVT if an error
502e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  occurs.
503e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
504e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
505e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
506e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
507e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
508e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciSendResponse (tNFA_HANDLE   hci_handle,
509e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                                UINT8         pipe,
510e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                                UINT8         response,
511e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                                UINT8         data_size,
512e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                                UINT8         *p_data);
513e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
514e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
515e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
516e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciSendEvent
517e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
518e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function is called to send any event on a pipe created
519e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  by the application.
520e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  The app will be notified by NFA_HCI_EVENT_SENT_EVT
521e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  after successfully sending the event on the specified pipe
522e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  or if an error occurs. The application should wait for this
523e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  event before releasing event buffer passed as argument.
524e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  If the app is expecting a response to the event then it can
525e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  provide response buffer for collecting the response. If it
526e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  provides a response buffer it should also provide response
527e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  timeout indicating duration validity of the response buffer.
528e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  Maximum of NFA_MAX_HCI_EVENT_LEN bytes APDU can be received
529e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  using internal buffer if no response buffer is provided by
530e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  the application. The app will be notified by
531e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_HCI_EVENT_RCVD_EVT after receiving the response event
532e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  or on timeout if app provided response buffer.
533e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  If response buffer is provided by the application, it should
534e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  wait for this event before releasing the response buffer.
535e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
536e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
537e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
538e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
539e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
540e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciSendEvent (tNFA_HANDLE hci_handle,
541e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                            UINT8        pipe,
542e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                            UINT8        evt_code,
543e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                            UINT16       evt_size,
544e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                            UINT8        *p_data,
545e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                            UINT16       rsp_size,
546e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                            UINT8        *p_rsp_buf,
547e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project                                            UINT16       rsp_timeout);
548e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
549e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
550e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
551e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciClosePipe
552e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
553e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function is called to close a dynamic pipe.
554e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  When the dynamic pipe is closed (or
555e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  if an error occurs), the app will be notified with
556e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_HCI_CLOSE_PIPE_EVT with the pipe id.
557e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
558e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
559e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
560e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
561e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
562e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciClosePipe (tNFA_HANDLE  hci_handle, UINT8 pipe);
563e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
564e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
565e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
566e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciDeletePipe
567e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
568e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function is called to delete a particular dynamic pipe.
569e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  When the dynamic pipe is deleted (or if an error occurs),
570e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  the app will be notified with NFA_HCI_DELETE_PIPE_EVT with
571e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  the pipe id. After successful deletion of pipe, registry
572e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  entry will be deleted for the dynamic pipe and all
573e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  information related to the pipe will be deleted from non
574e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  volatile memory.
575e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
576e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
577e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_BAD_HANDLE if handle is not valid
578e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
579e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
580e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
581e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciDeletePipe (tNFA_HANDLE  hci_handle, UINT8 pipe);
582e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
583e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
584e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
585e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciAddStaticPipe
586e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
587e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      This function is called to add a static pipe for sending
588e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  7816 APDUs. When the static pipe is added (or if an error occurs),
589e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  the app will be notified with NFA_HCI_ADD_STATIC_PIPE_EVT with
590e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  status.
591e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
592e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns          NFA_STATUS_OK if successfully initiated
593e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**                  NFA_STATUS_FAILED otherwise
594e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
595e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
596e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern tNFA_STATUS NFA_HciAddStaticPipe (tNFA_HANDLE hci_handle, UINT8 host, UINT8 gate, UINT8 pipe);
597e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
598e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*******************************************************************************
599e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
600e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function         NFA_HciDebug
601e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
602e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description      Debug function.
603e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project**
604e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/
605e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectNFC_API extern void NFA_HciDebug (UINT8 action, UINT8 size, UINT8 *p_data);
606e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
607e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus
608e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}
609e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
610e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
611e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFA_P2P_API_H */
612e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
613