/****************************************************************************** * * Copyright (C) 2014 Google, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************//* ... */#ifndef_HCI_LAYER_H_#define_HCI_LAYER_H_#include"common/bt_target.h"#include"stack/bt_types.h"#include"osi/allocator.h"#include"osi/osi.h"#include"osi/future.h"#include"osi/thread.h"#include"osi/pkt_queue.h"7 includes///// LEGACY DEFINITIONS //////* Message event mask across Host/Controller lib and stack */#defineMSG_EVT_MASK0xFF00/* eq. BT_EVT_MASK */#defineMSG_SUB_EVT_MASK0x00FF/* eq. BT_SUB_EVT_MASK *//* Message event ID passed from Host/Controller lib to stack */#defineMSG_HC_TO_STACK_HCI_ERR0x1300/* eq. BT_EVT_TO_BTU_HCIT_ERR */#defineMSG_HC_TO_STACK_HCI_ACL0x1100/* eq. BT_EVT_TO_BTU_HCI_ACL */#defineMSG_HC_TO_STACK_HCI_SCO0x1200/* eq. BT_EVT_TO_BTU_HCI_SCO */#defineMSG_HC_TO_STACK_HCI_EVT0x1000/* eq. BT_EVT_TO_BTU_HCI_EVT */#defineMSG_HC_TO_STACK_L2C_SEG_XMIT0x1900/* eq. BT_EVT_TO_BTU_L2C_SEG_XMIT *//* Message event ID passed from stack to vendor lib */#defineMSG_STACK_TO_HC_HCI_ACL0x2100/* eq. BT_EVT_TO_LM_HCI_ACL */#defineMSG_STACK_TO_HC_HCI_SCO0x2200/* eq. BT_EVT_TO_LM_HCI_SCO */#defineMSG_STACK_TO_HC_HCI_CMD0x2000/* eq. BT_EVT_TO_LM_HCI_CMD *//* Local Bluetooth Controller ID for BR/EDR */#defineLOCAL_BR_EDR_CONTROLLER_ID0#defineHCI_CMD_MSG_F_VND_FUTURE(0x01)#defineHCI_CMD_MSG_F_VND_QUEUED(0x02)#defineHCI_CMD_MSG_F_VND_SENT(0x04)14 defines///// END LEGACY DEFINITIONS /////typedefstructhci_hal_thci_hal_t;//typedef struct btsnoop_t btsnoop_t;typedefstructcontroller_tcontroller_t;//typedef struct hci_inject_t hci_inject_t;typedefstructpacket_fragmenter_tpacket_fragmenter_t;//typedef struct vendor_t vendor_t;//typedef struct low_power_manager_t low_power_manager_t;//typedef unsigned char * bdaddr_t;typedefuint16_tcommand_opcode_t;/*typedef enum { LPM_DISABLE, LPM_ENABLE, LPM_WAKE_ASSERT, LPM_WAKE_DEASSERT} low_power_command_t;*//* ... */typedefvoid(*command_complete_cb)(BT_HDR*response,void*context);typedefvoid(*command_status_cb)(uint8_tstatus,BT_HDR*command,void*context);typedefstructhci_t{// Send a low power command, if supported and the low power manager is enabled.//void (*send_low_power_command)(low_power_command_t command);// Do the postload sequence (call after the rest of the BT stack initializes).void(*do_postload)(void);// Send a command through the HCI layervoid(*transmit_command)(BT_HDR*command,command_complete_cbcomplete_callback,command_status_cbstatus_cb,void*context);future_t*(*transmit_command_futured)(BT_HDR*command);// Send some data downward through the HCI layervoid(*transmit_downward)(uint16_ttype,void*data);}{ ... }hci_t;consthci_t*hci_layer_get_interface(void);inthci_start_up(void);voidhci_shut_down(void);boolhci_downstream_data_post(uint32_ttimeout);#if(BLE_ADV_REPORT_FLOW_CONTROL==TRUE)inthci_adv_credits_prep_to_release(uint16_tnum);inthci_adv_credits_try_release(uint16_tnum);inthci_adv_credits_force_release(uint16_tnum);/* ... */#endif/* ... */#endif/* _HCI_LAYER_H_ */
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.