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