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