• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /******************************************************************************
2  *
3  *  Copyright (C) 2009-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  *  Filename:      hci.h
22  *
23  *  Description:   Contains definitions used for HCI transport controls
24  *
25  ******************************************************************************/
26 
27 #ifndef HCI_H
28 #define HCI_H
29 
30 /******************************************************************************
31 **  Constants & Macros
32 ******************************************************************************/
33 
34 /******************************************************************************
35 **  Type definitions
36 ******************************************************************************/
37 
38 /** Prototypes for HCI Service interface functions **/
39 
40 /* Initialize transport's control block */
41 typedef void (*tHCI_INIT)(void);
42 
43 /* Do transport's control block clean-up */
44 typedef void (*tHCI_CLEANUP)(void);
45 
46 /* Send HCI command/data to the transport */
47 typedef void (*tHCI_SEND)(HC_BT_HDR *p_msg);
48 
49 /* Handler for HCI upstream path */
50 typedef uint16_t (*tHCI_RCV)(void);
51 
52 /* Callback function for the returned event of internally issued command */
53 typedef void (*tINT_CMD_CBACK)(void *p_mem);
54 
55 /* Handler for sending HCI command from the local module */
56 typedef uint8_t (*tHCI_SEND_INT)(uint16_t opcode, HC_BT_HDR *p_buf, \
57                                   tINT_CMD_CBACK p_cback);
58 
59 /* Handler for getting acl data length */
60 typedef void (*tHCI_ACL_DATA_LEN_HDLR)(void);
61 
62 /******************************************************************************
63 **  Extern variables and functions
64 ******************************************************************************/
65 
66 typedef struct {
67     tHCI_INIT init;
68     tHCI_CLEANUP cleanup;
69     tHCI_SEND send;
70     tHCI_SEND_INT send_int_cmd;
71     tHCI_ACL_DATA_LEN_HDLR get_acl_max_len;
72 #ifdef HCI_USE_MCT
73     tHCI_RCV evt_rcv;
74     tHCI_RCV acl_rcv;
75 #else
76     tHCI_RCV rcv;
77 #endif
78 } tHCI_IF;
79 
80 /******************************************************************************
81 **  Functions
82 ******************************************************************************/
83 
84 
85 #endif /* HCI_H */
86 
87