nfa_hci_api.h revision e9df6ba5a8fcccf306a80b1670b423be8fe7746a
1/****************************************************************************** 2 * 3 * Copyright (C) 2010-2012 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19/****************************************************************************** 20 * 21 * This is the public interface file for NFA HCI, Broadcom's NFC 22 * application layer for mobile phones. 23 * 24 ******************************************************************************/ 25#ifndef NFA_HCI_API_H 26#define NFA_HCI_API_H 27 28#include "nfa_api.h" 29 30/***************************************************************************** 31** Constants and data types 32*****************************************************************************/ 33 34/* NFA HCI Debug constants */ 35#define NFA_HCI_DEBUG_DISPLAY_CB 0 36#define NFA_HCI_DEBUG_SIM_HCI_EVENT 1 37#define NFA_HCI_DEBUG_ENABLE_LOOPBACK 101 38#define NFA_HCI_DEBUG_DISABLE_LOOPBACK 102 39 40/* NFA HCI callback events */ 41#define NFA_HCI_REGISTER_EVT 0x00 /* Application registered */ 42#define NFA_HCI_DEREGISTER_EVT 0x01 /* Application deregistered */ 43#define NFA_HCI_GET_GATE_PIPE_LIST_EVT 0x02 /* Retrieved gates,pipes assoc. to application */ 44#define NFA_HCI_ALLOCATE_GATE_EVT 0x03 /* A generic gate allocated to the application */ 45#define NFA_HCI_DEALLOCATE_GATE_EVT 0x04 /* A generic gate is released */ 46#define NFA_HCI_CREATE_PIPE_EVT 0x05 /* Pipe is created */ 47#define NFA_HCI_OPEN_PIPE_EVT 0x06 /* Pipe is opened / could not open */ 48#define NFA_HCI_CLOSE_PIPE_EVT 0x07 /* Pipe is closed / could not close */ 49#define NFA_HCI_DELETE_PIPE_EVT 0x08 /* Pipe is deleted */ 50#define NFA_HCI_HOST_LIST_EVT 0x09 /* Received list of Host from Host controller */ 51#define NFA_HCI_INIT_EVT 0x0A /* HCI subsytem initialized */ 52#define NFA_HCI_EXIT_EVT 0x0B /* HCI subsytem exited */ 53#define NFA_HCI_RSP_RCVD_EVT 0x0C /* Response recvd to cmd sent on app owned pipe */ 54#define NFA_HCI_RSP_SENT_EVT 0x0D /* Response sent on app owned pipe */ 55#define NFA_HCI_CMD_SENT_EVT 0x0E /* Command sent on app owned pipe */ 56#define NFA_HCI_EVENT_SENT_EVT 0x0F /* Event sent on app owned pipe */ 57#define NFA_HCI_CMD_RCVD_EVT 0x10 /* Command received on app owned pipe */ 58#define NFA_HCI_EVENT_RCVD_EVT 0x11 /* Event received on app owned pipe */ 59#define NFA_HCI_GET_REG_CMD_EVT 0x12 /* Registry read command sent */ 60#define NFA_HCI_SET_REG_CMD_EVT 0x13 /* Registry write command sent */ 61#define NFA_HCI_GET_REG_RSP_EVT 0x14 /* Received response to read registry command */ 62#define NFA_HCI_SET_REG_RSP_EVT 0x15 /* Received response to write registry command */ 63#define NFA_HCI_ADD_STATIC_PIPE_EVT 0x16 /* A static pipe is added */ 64 65typedef UINT8 tNFA_HCI_EVT; 66 67#define NFA_MAX_HCI_APP_NAME_LEN 0x10 /* Max application name length */ 68#define NFA_MAX_HCI_CMD_LEN 255 /* Max HCI command length */ 69#define NFA_MAX_HCI_RSP_LEN 255 /* Max HCI event length */ 70#define NFA_MAX_HCI_EVENT_LEN 260 /* Max HCI event length */ 71#define NFA_MAX_HCI_DATA_LEN 260 /* Max HCI data length */ 72 73/* NFA HCI PIPE states */ 74#define NFA_HCI_PIPE_CLOSED 0x00 /* Pipe is closed */ 75#define NFA_HCI_PIPE_OPENED 0x01 /* Pipe is opened */ 76 77typedef UINT8 tNFA_HCI_PIPE_STATE; 78/* Dynamic pipe control block */ 79typedef struct 80{ 81 UINT8 pipe_id; /* Pipe ID */ 82 tNFA_HCI_PIPE_STATE pipe_state; /* State of the Pipe */ 83 UINT8 local_gate; /* local gate id */ 84 UINT8 dest_host; /* Peer host to which this pipe is connected */ 85 UINT8 dest_gate; /* Peer gate to which this pipe is connected */ 86} tNFA_HCI_PIPE_INFO; 87 88/* Data for NFA_HCI_REGISTER_EVT */ 89typedef struct 90{ 91 tNFA_STATUS status; 92 tNFA_HANDLE hci_handle; 93 UINT8 num_pipes; 94 UINT8 num_gates; 95} tNFA_HCI_REGISTER; 96 97/* Data for NFA_HCI_DEREGISTER_EVT */ 98typedef struct 99{ 100 tNFA_STATUS status; 101} tNFA_HCI_DEREGISTER; 102 103/* Data for NFA_HCI_GET_GATE_PIPE_LIST_EVT */ 104typedef struct 105{ 106 tNFA_STATUS status; 107 UINT8 num_pipes; 108 tNFA_HCI_PIPE_INFO pipe[NFA_HCI_MAX_PIPE_CB]; 109 UINT8 num_gates; 110 UINT8 gate[NFA_HCI_MAX_GATE_CB]; 111 112} tNFA_HCI_GET_GATE_PIPE_LIST; 113 114/* Data for NFA_HCI_ALLOCATE_GATE_EVT */ 115typedef struct 116{ 117 tNFA_STATUS status; 118 UINT8 gate; 119} tNFA_HCI_ALLOCATE_GATE; 120 121/* Data for NFA_HCI_DEALLOCATE_GATE_EVT */ 122typedef struct 123{ 124 tNFA_STATUS status; 125 UINT8 gate; 126} tNFA_HCI_DEALLOCATE_GATE; 127 128/* Data for NFA_HCI_CREATE_PIPE_EVT */ 129typedef struct 130{ 131 tNFA_STATUS status; 132 UINT8 pipe; 133 UINT8 source_gate; 134 UINT8 dest_host; 135 UINT8 dest_gate; 136} tNFA_HCI_CREATE_PIPE; 137 138/* Data for NFA_HCI_OPEN_PIPE_EVT */ 139typedef struct 140{ 141 tNFA_STATUS status; 142 UINT8 pipe; 143}tNFA_HCI_OPEN_PIPE; 144 145/* Data for NFA_HCI_CLOSE_PIPE_EVT */ 146typedef struct 147{ 148 tNFA_STATUS status; 149 UINT8 pipe; 150}tNFA_HCI_CLOSE_PIPE; 151 152/* Data for NFA_HCI_DELETE_PIPE_EVT */ 153typedef struct 154{ 155 tNFA_STATUS status; 156 UINT8 pipe; 157} tNFA_HCI_DELETE_PIPE; 158 159/* Data for NFA_HCI_HOST_LIST_EVT */ 160typedef struct 161{ 162 tNFA_STATUS status; 163 UINT8 num_hosts; 164 UINT8 host[NFA_HCI_MAX_HOST_IN_NETWORK]; 165} tNFA_HCI_HOST_LIST; 166 167/* Data for NFA_HCI_RSP_RCVD_EVT */ 168typedef struct 169{ 170 tNFA_STATUS status; 171 UINT8 pipe; 172 UINT8 rsp_code; 173 UINT16 rsp_len; 174 UINT8 rsp_data[NFA_MAX_HCI_RSP_LEN]; 175} tNFA_HCI_RSP_RCVD; 176 177/* Data for NFA_HCI_EVENT_RCVD_EVT */ 178typedef struct 179{ 180 tNFA_STATUS status; 181 UINT8 pipe; 182 UINT8 evt_code; 183 UINT16 evt_len; 184 UINT8 *p_evt_buf; 185} tNFA_HCI_EVENT_RCVD; 186 187/* Data for NFA_HCI_CMD_RCVD_EVT */ 188typedef struct 189{ 190 tNFA_STATUS status; 191 UINT8 pipe; 192 UINT8 cmd_code; 193 UINT16 cmd_len; 194 UINT8 cmd_data[NFA_MAX_HCI_CMD_LEN]; 195} tNFA_HCI_CMD_RCVD; 196 197/* Data for NFA_HCI_INIT_EVT */ 198typedef struct 199{ 200 tNFA_STATUS status; 201} tNFA_HCI_INIT; 202 203/* Data for NFA_HCI_EXIT_EVT */ 204typedef struct 205{ 206 tNFA_STATUS status; 207} tNFA_HCI_EXIT; 208 209/* Data for NFA_HCI_RSP_SENT_EVT */ 210typedef struct 211{ 212 tNFA_STATUS status; 213} tNFA_HCI_RSP_SENT; 214 215/* Data for NFA_HCI_CMD_SENT_EVT */ 216typedef struct 217{ 218 tNFA_STATUS status; 219} tNFA_HCI_CMD_SENT; 220 221/* Data for NFA_HCI_EVENT_SENT_EVT */ 222typedef struct 223{ 224 tNFA_STATUS status; 225} tNFA_HCI_EVENT_SENT; 226 227/* Data for NFA_HCI_ADD_STATIC_PIPE_EVT */ 228typedef struct 229{ 230 tNFA_STATUS status; 231} tNFA_HCI_ADD_STATIC_PIPE_EVT; 232 233/* data type for all registry-related events */ 234typedef struct 235{ 236 tNFA_STATUS status; 237 UINT8 pipe; 238 UINT8 index; 239 UINT8 data_len; 240 UINT8 reg_data[NFA_MAX_HCI_DATA_LEN]; 241} tNFA_HCI_REGISTRY; 242 243 244/* Union of all hci callback structures */ 245typedef union 246{ 247 tNFA_HCI_REGISTER hci_register; /* NFA_HCI_REGISTER_EVT */ 248 tNFA_HCI_DEREGISTER hci_deregister; /* NFA_HCI_DEREGISTER_EVT */ 249 tNFA_HCI_GET_GATE_PIPE_LIST gates_pipes; /* NFA_HCI_GET_GATE_PIPE_LIST_EVT */ 250 tNFA_HCI_ALLOCATE_GATE allocated; /* NFA_HCI_ALLOCATE_GATE_EVT */ 251 tNFA_HCI_DEALLOCATE_GATE deallocated; /* NFA_HCI_DEALLOCATE_GATE_EVT */ 252 tNFA_HCI_CREATE_PIPE created; /* NFA_HCI_CREATE_PIPE_EVT */ 253 tNFA_HCI_OPEN_PIPE opened; /* NFA_HCI_OPEN_PIPE_EVT */ 254 tNFA_HCI_CLOSE_PIPE closed; /* NFA_HCI_CLOSE_PIPE_EVT */ 255 tNFA_HCI_DELETE_PIPE deleted; /* NFA_HCI_DELETE_PIPE_EVT */ 256 tNFA_HCI_HOST_LIST hosts; /* NFA_HCI_HOST_LIST_EVT */ 257 tNFA_HCI_RSP_RCVD rsp_rcvd; /* NFA_HCI_RSP_RCVD_EVT */ 258 tNFA_HCI_RSP_SENT rsp_sent; /* NFA_HCI_RSP_SENT_EVT */ 259 tNFA_HCI_CMD_SENT cmd_sent; /* NFA_HCI_CMD_SENT_EVT */ 260 tNFA_HCI_EVENT_SENT evt_sent; /* NFA_HCI_EVENT_SENT_EVT */ 261 tNFA_HCI_CMD_RCVD cmd_rcvd; /* NFA_HCI_CMD_RCVD_EVT */ 262 tNFA_HCI_EVENT_RCVD rcvd_evt; /* NFA_HCI_EVENT_RCVD_EVT */ 263 tNFA_STATUS status; /* status of api command request */ 264 tNFA_HCI_REGISTRY registry; /* all registry-related events */ 265 tNFA_HCI_INIT hci_init; /* NFA_HCI_INIT_EVT */ 266 tNFA_HCI_EXIT hci_exit; /* NFA_HCI_EXIT_EVT */ 267 tNFA_HCI_ADD_STATIC_PIPE_EVT pipe_added; /* NFA_HCI_ADD_STATIC_PIPE_EVT */ 268} tNFA_HCI_EVT_DATA; 269 270/* NFA HCI callback */ 271typedef void (tNFA_HCI_CBACK) (tNFA_HCI_EVT event, tNFA_HCI_EVT_DATA *p_data); 272 273/***************************************************************************** 274** External Function Declarations 275*****************************************************************************/ 276#ifdef __cplusplus 277extern "C" 278{ 279#endif 280 281 282/******************************************************************************* 283** 284** Function NFA_HciRegister 285** 286** Description This function will register an application with hci and 287** returns an application handle and provides a mechanism to 288** register a callback with HCI to receive NFA HCI event notification. 289** When the application is registered (or if an error occurs), 290** the app will be notified with NFA_HCI_REGISTER_EVT. Previous 291** session information including allocated gates, created pipes 292** and pipes states will be returned as part of tNFA_HCI_REGISTER data. 293** 294** Returns NFA_STATUS_OK if successfully initiated 295** NFA_STATUS_FAILED otherwise 296** 297*******************************************************************************/ 298NFC_API extern tNFA_STATUS NFA_HciRegister (char *p_app_name, tNFA_HCI_CBACK *p_cback, BOOLEAN b_send_conn_evts); 299 300/******************************************************************************* 301** 302** Function NFA_HciGetGateAndPipeList 303** 304** Description This function will retrieve the list of gates allocated to 305** the application and list of dynamic pipes created for the 306** application. The app will be notified with 307** NFA_HCI_GET_GATE_PIPE_LIST_EVT. List of allocated dynamic 308** gates to the application and list of pipes created by the 309** application will be returned as part of 310** tNFA_HCI_GET_GATE_PIPE_LIST data. 311** 312** Returns NFA_STATUS_OK if successfully initiated 313** NFA_STATUS_FAILED otherwise 314** 315*******************************************************************************/ 316NFC_API extern tNFA_STATUS NFA_HciGetGateAndPipeList (tNFA_HANDLE hci_handle); 317 318/******************************************************************************* 319** 320** Function NFA_HciDeregister 321** 322** Description This function is called to deregister an application 323** from HCI. The app will be notified by NFA_HCI_DEREGISTER_EVT 324** after deleting all the pipes owned by the app and deallocating 325** all the gates allocated to the app or if an error occurs. 326** The app can release the buffer provided for collecting long 327** APDUs after receiving NFA_HCI_DEREGISTER_EVT. 328** Even if deregistration fails, the app has to register again 329** to provide a new cback function and event buffer for receiving 330** long APDUs. 331** 332** Returns NFA_STATUS_OK if the application is deregistered successfully 333** NFA_STATUS_FAILED otherwise 334** 335*******************************************************************************/ 336NFC_API extern tNFA_STATUS NFA_HciDeregister (char *p_app_name); 337 338/******************************************************************************* 339** 340** Function NFA_HciAllocGate 341** 342** Description This function will allocate an available generic gate for 343** the app to provide an entry point for a particular service 344** to other host or to establish communication with other host. 345** When the generic gate is allocated (or if an error occurs), 346** the app will be notified with NFA_HCI_ALLOCATE_GATE_EVT with 347** the gate id. The allocated Gate information will be stored in 348** non volatile memory. 349** 350** Returns NFA_STATUS_OK if this API started 351** NFA_STATUS_BAD_HANDLE if handle is not valid 352** NFA_STATUS_FAILED if no generic gate is available 353** 354*******************************************************************************/ 355NFC_API extern tNFA_STATUS NFA_HciAllocGate (tNFA_HANDLE hci_handle); 356 357/******************************************************************************* 358** 359** Function NFA_HciDeallocGate 360** 361** Description This function will release the specified gate that was 362** previously allocated to the application. When the generic 363** gate is released (or if an error occurs), the app will be 364** notified with NFA_HCI_DEALLOCATE_GATE_EVT with the gate id. 365** The allocated Gate information will be deleted from non 366** volatile memory and all the associated pipes are deleted 367** by informing host controller. 368** 369** Returns NFA_STATUS_OK if successfully initiated 370** NFA_STATUS_BAD_HANDLE if handle is not valid 371** NFA_STATUS_FAILED otherwise 372** 373*******************************************************************************/ 374NFC_API extern tNFA_STATUS NFA_HciDeallocGate (tNFA_HANDLE conn_handle, UINT8 gate); 375 376/******************************************************************************* 377** 378** Function NFA_HciGetHostList 379** 380** Description This function will request the host controller to return the 381** list of hosts that are present in the host network. When 382** host controller responds with the host list (or if an error 383** occurs), the app will be notified with NFA_HCI_HOST_LIST_EVT 384** 385** Returns NFA_STATUS_OK if successfully initiated 386** NFA_STATUS_BAD_HANDLE if handle is not valid 387** NFA_STATUS_FAILED otherwise 388** 389*******************************************************************************/ 390NFC_API extern tNFA_STATUS NFA_HciGetHostList (tNFA_HANDLE hci_handle); 391 392/******************************************************************************* 393** 394** Function NFA_HciCreatePipe 395** 396** Description This function is called to create a dynamic pipe with the 397** specified host. When the dynamic pipe is created (or 398** if an error occurs), the app will be notified with 399** NFA_HCI_CREATE_PIPE_EVT with the pipe id. If a pipe exists 400** between the two gates passed as argument and if it was 401** created earlier by the calling application then the pipe 402** id of the existing pipe will be returned and a new pipe 403** will not be created. After successful creation of pipe, 404** registry entry will be created for the dynamic pipe and 405** all information related to the pipe will be stored in non 406** volatile memory. 407** 408** Returns NFA_STATUS_OK if successfully initiated 409** NFA_STATUS_FAILED otherwise 410** 411*******************************************************************************/ 412NFC_API extern tNFA_STATUS NFA_HciCreatePipe (tNFA_HANDLE hci_handle, 413 UINT8 source_gate_id, 414 UINT8 dest_host, 415 UINT8 dest_gate); 416 417/******************************************************************************* 418** 419** Function NFA_HciOpenPipe 420** 421** Description This function is called to open a dynamic pipe. 422** When the dynamic pipe is opened (or 423** if an error occurs), the app will be notified with 424** NFA_HCI_OPEN_PIPE_EVT with the pipe id. 425** 426** Returns NFA_STATUS_OK if successfully initiated 427** NFA_STATUS_FAILED otherwise 428** 429*******************************************************************************/ 430NFC_API extern tNFA_STATUS NFA_HciOpenPipe (tNFA_HANDLE hci_handle, UINT8 pipe); 431 432/******************************************************************************* 433** 434** Function NFA_HciGetRegistry 435** 436** Description This function requests a peer host to return the desired 437** registry field value for the gate that the pipe is on. 438** 439** When the peer host responds,the app is notified with 440** NFA_HCI_GET_REG_RSP_EVT or 441** if an error occurs in sending the command the app will be 442** notified by NFA_HCI_CMD_SENT_EVT 443** 444** Returns NFA_STATUS_OK if successfully initiated 445** NFA_STATUS_FAILED otherwise 446** 447*******************************************************************************/ 448NFC_API extern tNFA_STATUS NFA_HciGetRegistry (tNFA_HANDLE hci_handle, UINT8 pipe, UINT8 reg_inx); 449 450/******************************************************************************* 451** 452** Function NFA_HciSetRegistry 453** 454** Description This function requests a peer host to set the desired 455** registry field value for the gate that the pipe is on. 456** 457** When the peer host responds,the app is notified with 458** NFA_HCI_SET_REG_RSP_EVT or 459** if an error occurs in sending the command the app will be 460** notified by NFA_HCI_CMD_SENT_EVT 461** 462** Returns NFA_STATUS_OK if successfully initiated 463** NFA_STATUS_FAILED otherwise 464** 465*******************************************************************************/ 466NFC_API extern tNFA_STATUS NFA_HciSetRegistry (tNFA_HANDLE hci_handle, 467 UINT8 pipe, 468 UINT8 reg_inx, 469 UINT8 data_size, 470 UINT8 *p_data); 471 472/******************************************************************************* 473** 474** Function NFA_HciSendCommand 475** 476** Description This function is called to send a command on a pipe created 477** by the application. 478** The app will be notified by NFA_HCI_CMD_SENT_EVT if an error 479** occurs. 480** When the peer host responds,the app is notified with 481** NFA_HCI_RSP_RCVD_EVT 482** 483** Returns NFA_STATUS_OK if successfully initiated 484** NFA_STATUS_FAILED otherwise 485** 486*******************************************************************************/ 487NFC_API extern tNFA_STATUS NFA_HciSendCommand (tNFA_HANDLE hci_handle, 488 UINT8 pipe, 489 UINT8 cmd_code, 490 UINT16 cmd_size, 491 UINT8 *p_data); 492 493/******************************************************************************* 494** 495** Function NFA_HciSendResponse 496** 497** Description This function is called to send a response on a pipe created 498** by the application. 499** The app will be notified by NFA_HCI_RSP_SENT_EVT if an error 500** occurs. 501** 502** Returns NFA_STATUS_OK if successfully initiated 503** NFA_STATUS_FAILED otherwise 504** 505*******************************************************************************/ 506NFC_API extern tNFA_STATUS NFA_HciSendResponse (tNFA_HANDLE hci_handle, 507 UINT8 pipe, 508 UINT8 response, 509 UINT8 data_size, 510 UINT8 *p_data); 511 512/******************************************************************************* 513** 514** Function NFA_HciSendEvent 515** 516** Description This function is called to send any event on a pipe created 517** by the application. 518** The app will be notified by NFA_HCI_EVENT_SENT_EVT 519** after successfully sending the event on the specified pipe 520** or if an error occurs. The application should wait for this 521** event before releasing event buffer passed as argument. 522** If the app is expecting a response to the event then it can 523** provide response buffer for collecting the response. If it 524** provides a response buffer it should also provide response 525** timeout indicating duration validity of the response buffer. 526** Maximum of NFA_MAX_HCI_EVENT_LEN bytes APDU can be received 527** using internal buffer if no response buffer is provided by 528** the application. The app will be notified by 529** NFA_HCI_EVENT_RCVD_EVT after receiving the response event 530** or on timeout if app provided response buffer. 531** If response buffer is provided by the application, it should 532** wait for this event before releasing the response buffer. 533** 534** Returns NFA_STATUS_OK if successfully initiated 535** NFA_STATUS_FAILED otherwise 536** 537*******************************************************************************/ 538NFC_API extern tNFA_STATUS NFA_HciSendEvent (tNFA_HANDLE hci_handle, 539 UINT8 pipe, 540 UINT8 evt_code, 541 UINT16 evt_size, 542 UINT8 *p_data, 543 UINT16 rsp_size, 544 UINT8 *p_rsp_buf, 545 UINT16 rsp_timeout); 546 547/******************************************************************************* 548** 549** Function NFA_HciClosePipe 550** 551** Description This function is called to close a dynamic pipe. 552** When the dynamic pipe is closed (or 553** if an error occurs), the app will be notified with 554** NFA_HCI_CLOSE_PIPE_EVT with the pipe id. 555** 556** Returns NFA_STATUS_OK if successfully initiated 557** NFA_STATUS_FAILED otherwise 558** 559*******************************************************************************/ 560NFC_API extern tNFA_STATUS NFA_HciClosePipe (tNFA_HANDLE hci_handle, UINT8 pipe); 561 562/******************************************************************************* 563** 564** Function NFA_HciDeletePipe 565** 566** Description This function is called to delete a particular dynamic pipe. 567** When the dynamic pipe is deleted (or if an error occurs), 568** the app will be notified with NFA_HCI_DELETE_PIPE_EVT with 569** the pipe id. After successful deletion of pipe, registry 570** entry will be deleted for the dynamic pipe and all 571** information related to the pipe will be deleted from non 572** volatile memory. 573** 574** Returns NFA_STATUS_OK if successfully initiated 575** NFA_STATUS_BAD_HANDLE if handle is not valid 576** NFA_STATUS_FAILED otherwise 577** 578*******************************************************************************/ 579NFC_API extern tNFA_STATUS NFA_HciDeletePipe (tNFA_HANDLE hci_handle, UINT8 pipe); 580 581/******************************************************************************* 582** 583** Function NFA_HciAddStaticPipe 584** 585** Description This function is called to add a static pipe for sending 586** 7816 APDUs. When the static pipe is added (or if an error occurs), 587** the app will be notified with NFA_HCI_ADD_STATIC_PIPE_EVT with 588** status. 589** 590** Returns NFA_STATUS_OK if successfully initiated 591** NFA_STATUS_FAILED otherwise 592** 593*******************************************************************************/ 594NFC_API extern tNFA_STATUS NFA_HciAddStaticPipe (tNFA_HANDLE hci_handle, UINT8 host, UINT8 gate, UINT8 pipe); 595 596/******************************************************************************* 597** 598** Function NFA_HciDebug 599** 600** Description Debug function. 601** 602*******************************************************************************/ 603NFC_API extern void NFA_HciDebug (UINT8 action, UINT8 size, UINT8 *p_data); 604 605#ifdef __cplusplus 606} 607#endif 608 609#endif /* NFA_P2P_API_H */ 610 611