15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 1999-2012 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * this file contains the main Bluetooth Upper Layer definitions. The Broadcom 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * implementations of L2CAP RFCOMM, SDP and the BTIf run as one GKI task. The 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * btu_task switches between them. 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTU_H 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTU_H 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 30dabf8d36c6a6896953fff4a12365716d438f173aJakub Pawlowski#include <base/callback.h> 31dabf8d36c6a6896953fff4a12365716d438f173aJakub Pawlowski#include <base/location.h> 322b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panicker#include <base/threading/thread.h> 33258c2538e3b62a8cdb403f2730c45d721e5292b4Pavlin Radoslavov#include "bt_common.h" 34911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#include "bt_target.h" 3578bcff79e1b1f0efce436b33bdd6da88745bfc8aPavlin Radoslavov#include "osi/include/alarm.h" 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Global BTU data */ 3878bcff79e1b1f0efce436b33bdd6da88745bfc8aPavlin Radoslavovextern uint8_t btu_trace_level; 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 40b2a292b5d8df2f359c38b0787bc01181225a9bc9Pavlin Radoslavov/* Functions provided by btu_hcif.cc 41ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *********************************** 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 432b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panickervoid btu_hcif_process_event(uint8_t controller_id, BT_HDR* p_buf); 442b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panickervoid btu_hcif_send_cmd(uint8_t controller_id, BT_HDR* p_msg); 452b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panickervoid btu_hcif_send_cmd_with_cb(const tracked_objects::Location& posted_from, 462b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panicker uint16_t opcode, uint8_t* params, 472b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panicker uint8_t params_len, 482b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panicker base::Callback<void(uint8_t*, uint16_t)> cb); 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 50b2a292b5d8df2f359c38b0787bc01181225a9bc9Pavlin Radoslavov/* Functions provided by btu_init.cc 51ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *********************************** 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 532b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panickervoid btu_init_core(void); 542b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panickervoid btu_free_core(void); 552b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panicker 562b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panicker/* Functions provided by btu_task.cc 572b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panicker *********************************** 582b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panicker*/ 592b7e9058076f1b6afde219b4d7a36368ca97d7fcAjay Panickerbase::MessageLoop* get_message_loop(); 60f79d28673355204c9ec14e64b87f14398affa06fSharvil Nanavati 61f79d28673355204c9ec14e64b87f14398affa06fSharvil Nanavativoid BTU_StartUp(void); 62f79d28673355204c9ec14e64b87f14398affa06fSharvil Nanavativoid BTU_ShutDown(void); 63f79d28673355204c9ec14e64b87f14398affa06fSharvil Nanavati 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 65