15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2003-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 is the private file for the BTA GATT server. 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_GATTS_INT_H 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_GATTS_INT_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h" 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys.h" 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_gatt_api.h" 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "gatt_api.h" 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "gki.h" 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Constants and data types 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_REG_EVT = BTA_SYS_EVT_START(BTA_ID_GATTS), 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_INT_START_IF_EVT, 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_DEREG_EVT, 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_CREATE_SRVC_EVT, 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_INDICATION_EVT, 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_ADD_INCL_SRVC_EVT, 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_ADD_CHAR_EVT, 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_ADD_DESCR_EVT, 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_DEL_SRVC_EVT, 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_START_SRVC_EVT, 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_STOP_SRVC_EVT, 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_RSP_EVT, 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_OPEN_EVT, 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_GATTS_API_CANCEL_OPEN_EVT, 54ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta BTA_GATTS_API_CLOSE_EVT, 55e1202caae4920139ea0cfed5c51f5f76b2dc8bc4Andre Eisenbach BTA_GATTS_API_LISTEN_EVT, 56e1202caae4920139ea0cfed5c51f5f76b2dc8bc4Andre Eisenbach BTA_GATTS_API_DISABLE_EVT 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tBTA_GATTS_INT_EVT; 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* max number of application allowed on device */ 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_GATTS_MAX_APP_NUM GATT_MAX_SR_PROFILES 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* max number of services allowed in the device */ 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_GATTS_MAX_SRVC_NUM GATT_MAX_SR_PROFILES 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* internal strucutre for GATTC register API */ 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID app_uuid; 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_CBACK *p_cback; 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_API_REG; 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_IF server_if; 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_INT_START_IF; 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef tBTA_GATTS_INT_START_IF tBTA_GATTS_API_DEREG; 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_IF server_if; 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID service_uuid; 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 num_handle; 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 inst; 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_pri; 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_GATTS_API_CREATE_SRVC; 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID char_uuid; 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATT_PERM perm; 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATT_CHAR_PROP property; 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_API_ADD_CHAR; 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 included_service_id; 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_API_ADD_INCL_SRVC; 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID descr_uuid; 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATT_PERM perm; 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_API_ADD_DESCR; 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 attr_id; 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len; 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN need_confirm; 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 value[BTA_GATT_MAX_ATTR_LEN]; 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_API_INDICATION; 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 trans_id; 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATT_STATUS status; 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_RSP *p_rsp; 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_API_RSP; 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATT_TRANSPORT transport; 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_API_START; 1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1427fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta BT_HDR hdr; 1437fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta BD_ADDR remote_bda; 1447fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta tBTA_GATTS_IF server_if; 1457fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta BOOLEAN is_direct; 1467fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta tBTA_GATT_TRANSPORT transport; 1477fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_API_OPEN; 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef tBTA_GATTS_API_OPEN tBTA_GATTS_API_CANCEL_OPEN; 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 152ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Battatypedef struct 153ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta{ 154ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta BT_HDR hdr; 155ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta BD_ADDR_PTR remote_bda; 156ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta tBTA_GATTS_IF server_if; 157ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta BOOLEAN start; 158ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta} tBTA_GATTS_API_LISTEN; 159ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_REG api_reg; 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_DEREG api_dereg; 1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_CREATE_SRVC api_create_svc; 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_ADD_INCL_SRVC api_add_incl_srvc; 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_ADD_CHAR api_add_char; 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_ADD_DESCR api_add_char_descr; 1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_START api_start; 1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_INDICATION api_indicate; 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_RSP api_rsp; 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_OPEN api_open; 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_API_CANCEL_OPEN api_cancel_open; 1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_INT_START_IF int_start_if; 176ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta /* if peripheral role is supported */ 177ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta tBTA_GATTS_API_LISTEN api_listen; 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_GATTS_DATA; 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* application registration control block */ 1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; 1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID app_uuid; 1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_CBACK *p_cback; 186ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta tBTA_GATTS_IF gatt_if; 1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_RCB; 1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* service registration control block */ 1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID service_uuid; /* service UUID */ 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 service_id; /* service handle */ 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 inst_num; /* instance ID */ 1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 rcb_idx; 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 idx; /* self index of serviec CB */ 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_SRVC_CB; 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT server control block */ 2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN enabled; 2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_RCB rcb[BTA_GATTS_MAX_APP_NUM]; 2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_GATTS_SRVC_CB srvc_cb[BTA_GATTS_MAX_SRVC_NUM]; 2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tBTA_GATTS_CB; 2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Global data 2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATTC control block */ 2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BTA_DYNAMIC_MEMORY == FALSE 2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_GATTS_CB bta_gatts_cb; 2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_GATTS_CB *bta_gatts_cb_ptr; 2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project #define bta_gatts_cb (*bta_gatts_cb_ptr) 2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function prototypes 2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN bta_gatts_hdl_event(BT_HDR *p_msg); 2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 229e1202caae4920139ea0cfed5c51f5f76b2dc8bc4Andre Eisenbachextern void bta_gatts_api_disable(tBTA_GATTS_CB *p_cb); 230e1202caae4920139ea0cfed5c51f5f76b2dc8bc4Andre Eisenbachextern void bta_gatts_api_enable(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_data); 2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_register(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); 2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_start_if(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); 2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_deregister(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); 2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_create_srvc(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg); 2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_add_include_srvc(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA * p_msg); 2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_add_char(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA * p_msg); 2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_add_char_descr(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA * p_msg); 2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_delete_service(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA * p_msg); 2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_start_service(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA * p_msg); 2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_stop_service(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA * p_msg); 2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_send_rsp(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg); 2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_indicate_handle (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg); 2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_open (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg); 2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_cancel_open (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg); 2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_gatts_close (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg); 249ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Battaextern void bta_gatts_listen(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA * p_msg); 2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN bta_gatts_uuid_compare(tBT_UUID tar, tBT_UUID src); 2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_GATTS_RCB *bta_gatts_find_app_rcb_by_app_if(tBTA_GATTS_IF server_if); 2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern UINT8 bta_gatts_find_app_rcb_idx_by_app_if(tBTA_GATTS_CB *p_cb, tBTA_GATTS_IF server_if); 2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern UINT8 bta_gatts_alloc_srvc_cb(tBTA_GATTS_CB *p_cb, UINT8 rcb_idx); 2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_GATTS_SRVC_CB * bta_gatts_find_srvc_cb_by_srvc_id(tBTA_GATTS_CB *p_cb, UINT16 service_id); 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_GATTS_SRVC_CB * bta_gatts_find_srvc_cb_by_attr_id(tBTA_GATTS_CB *p_cb, UINT16 attr_id); 2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_GATTS_INT_H */ 2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 261