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