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