1ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/****************************************************************************** 2ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * 3ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * Copyright (C) 2009-2013 Broadcom Corporation 4ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * 5ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * Licensed under the Apache License, Version 2.0 (the "License"); 6ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * you may not use this file except in compliance with the License. 7ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * You may obtain a copy of the License at: 8ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * 9ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * http://www.apache.org/licenses/LICENSE-2.0 10ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * 11ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * Unless required by applicable law or agreed to in writing, software 12ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * distributed under the License is distributed on an "AS IS" BASIS, 13ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * See the License for the specific language governing permissions and 15ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * limitations under the License. 16ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta * 17ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta ******************************************************************************/ 18ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 19ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#ifndef GAP_API_H 20ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define GAP_API_H 21ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 228372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz#include "btm_api.h" 238372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz#include "l2c_api.h" 24911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#include "profiles_api.h" 258372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 26ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/***************************************************************************** 27ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Constants 28ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/ 298372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/*** GAP Error and Status Codes ***/ 309ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Unsupported call */ 31911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_UNSUPPORTED (GAP_ERR_GRP + 0x01) 329ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* End of inquiry database marker */ 33911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_EOINQDB (GAP_ERR_GRP + 0x02) 349ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* The requested function was busy */ 35911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_BUSY (GAP_ERR_GRP + 0x03) 369ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* No control blocks available */ 379ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson#define GAP_ERR_NO_CTRL_BLK (GAP_ERR_GRP + 0x04) 389ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Error occurred while initiating the command */ 399ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson#define GAP_ERR_STARTING_CMD (GAP_ERR_GRP + 0x05) 409ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* No Inquiry DB record for BD_ADDR */ 41911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_NO_BDADDR_REC (GAP_ERR_GRP + 0x06) 429ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* An illegal mode parameter was detected */ 43911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_ILL_MODE (GAP_ERR_GRP + 0x07) 449ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* An illegal time parameter was detected */ 459ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson#define GAP_ERR_ILL_INQ_TIME (GAP_ERR_GRP + 0x08) 469ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* An illegal parameter was detected */ 47911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_ILL_PARM (GAP_ERR_GRP + 0x09) 489ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Error starting the remote device name request */ 49911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_REM_NAME (GAP_ERR_GRP + 0x0a) 509ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* The GAP command was started (result pending) */ 51911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_CMD_INITIATED (GAP_ERR_GRP + 0x0b) 529ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* The device was not up; the request was not executed */ 53911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_DEVICE_NOT_UP (GAP_ERR_GRP + 0x0c) 549ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* The bd addr passed in was not found or invalid */ 55911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_BAD_BD_ADDR (GAP_ERR_GRP + 0x0d) 569ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson 579ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Bad GAP handle */ 58911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_BAD_HANDLE (GAP_ERR_GRP + 0x0e) 599ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Buffer offset invalid */ 60911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_BUF_OFFSET (GAP_ERR_GRP + 0x0f) 619ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Connection is in invalid state */ 62911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_BAD_STATE (GAP_ERR_GRP + 0x10) 639ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* No data available */ 64911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_NO_DATA_AVAIL (GAP_ERR_GRP + 0x11) 659ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* BT stack is congested */ 66911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_CONGESTED (GAP_ERR_GRP + 0x12) 679ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Security failed */ 68911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_SECURITY (GAP_ERR_GRP + 0x13) 699ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson 709ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* General error processing BTM request */ 71911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_PROCESSING (GAP_ERR_GRP + 0x14) 729ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Timeout occurred while processing cmd */ 73911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_ERR_TIMEOUT (GAP_ERR_GRP + 0x15) 74911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_EVT_CONN_OPENED 0x0100 75911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_EVT_CONN_CLOSED 0x0101 76911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_EVT_CONN_DATA_AVAIL 0x0102 77911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_EVT_CONN_CONGESTED 0x0103 78911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_EVT_CONN_UNCONGESTED 0x0104 79911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_EVT_TX_EMPTY 0x0105 804e972d8c24ecfb808757ef5c81eb3877ebc93027Srinu Jella 818372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/* Values for 'chan_mode_mask' field */ 828372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/* GAP_ConnOpen() - optional channels to negotiate */ 83911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_FCR_CHAN_OPT_BASIC L2CAP_FCR_CHAN_OPT_BASIC 84911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_FCR_CHAN_OPT_ERTM L2CAP_FCR_CHAN_OPT_ERTM 85911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_FCR_CHAN_OPT_STREAM L2CAP_FCR_CHAN_OPT_STREAM 868372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/*** used in connection variables and functions ***/ 87911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_INVALID_HANDLE 0xFFFF 888372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 899ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* This is used to change the criteria for AMP */ 90911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_PROTOCOL_ID (UUID_PROTOCOL_UDP) 918372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 92911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#ifndef GAP_PREFER_CONN_INT_MAX 93911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_PREFER_CONN_INT_MAX BTM_BLE_CONN_INT_MIN 94ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#endif 95ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 96911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#ifndef GAP_PREFER_CONN_INT_MIN 97911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_PREFER_CONN_INT_MIN BTM_BLE_CONN_INT_MIN 98ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#endif 99ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 100911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#ifndef GAP_PREFER_CONN_LATENCY 101911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_PREFER_CONN_LATENCY 0 102ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#endif 103ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 104911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#ifndef GAP_PREFER_CONN_SP_TOUT 105911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define GAP_PREFER_CONN_SP_TOUT 2000 106ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#endif 107ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 108ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/***************************************************************************** 109ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Type Definitions 110ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/ 1118372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/* 112ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Callback function for connection services 1138372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz*/ 114911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef void(tGAP_CONN_CALLBACK)(uint16_t gap_handle, uint16_t event); 1158372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 1168372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/* 117ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Define the callback function prototypes. Parameters are specific 118ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * to each event and are described below 1198372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz*/ 120911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef void(tGAP_CALLBACK)(uint16_t event, void* p_data); 1218372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 1228372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/* Definition of the GAP_FindAddrByName results structure */ 123911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef struct { 124911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t status; 1259e030fde05352ec4385d7baf6cc2af89e95e039cJakub Pawlowski RawAddress bd_addr; 126911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tBTM_BD_NAME devname; 1278372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz} tGAP_FINDADDR_RESULTS; 128ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 129911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef struct { 130911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t int_min; 131911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t int_max; 132911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t latency; 133911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t sp_tout; 134911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson} tGAP_BLE_PREF_PARAM; 135ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 136911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef union { 137911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tGAP_BLE_PREF_PARAM conn_param; 1389e030fde05352ec4385d7baf6cc2af89e95e039cJakub Pawlowski RawAddress reconn_bda; 139911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t icon; 140911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint8_t* p_dev_name; 141911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint8_t addr_resolution; 142ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 143911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson} tGAP_BLE_ATTR_VALUE; 144ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1459e030fde05352ec4385d7baf6cc2af89e95e039cJakub Pawlowskitypedef void(tGAP_BLE_CMPL_CBACK)(bool status, const RawAddress& addr, 146c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski uint16_t length, char* p_name); 147ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 148ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/***************************************************************************** 149ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * External Function Declarations 150ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/ 151ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1528372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/*** Functions for L2CAP connection interface ***/ 1538372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 1548372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 155ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 156ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnOpen 157ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 158ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description This function is called to open a generic L2CAP connection. 159ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 1609ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Returns handle of the connection if successful, else 1619ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * GAP_INVALID_HANDLE 162ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 163ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 164911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t GAP_ConnOpen(const char* p_serv_name, uint8_t service_id, 1659e030fde05352ec4385d7baf6cc2af89e95e039cJakub Pawlowski bool is_server, const RawAddress* p_rem_bda, 166c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski uint16_t psm, tL2CAP_CFG_INFO* p_cfg, 167911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tL2CAP_ERTM_INFO* ertm_info, uint16_t security, 168911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint8_t chan_mode_mask, tGAP_CONN_CALLBACK* p_cb, 169911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tBT_TRANSPORT transport); 1708372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 1718372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 172ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 173ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnClose 174ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 175ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description This function is called to close a connection. 176ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 177ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns BT_PASS - closed OK 178ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_ERR_BAD_HANDLE - invalid handle 179ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 180ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 181911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t GAP_ConnClose(uint16_t gap_handle); 1828372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 1838372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 184ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 185ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnReadData 186ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 187ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description GKI buffer unaware application will call this function 188ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * after receiving GAP_EVT_RXDATA event. A data copy is made 189ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * into the receive buffer parameter. 190ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 191ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns BT_PASS - data read 192ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_ERR_BAD_HANDLE - invalid handle 193ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_NO_DATA_AVAIL - no data available 194ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 195ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 196911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t GAP_ConnReadData(uint16_t gap_handle, uint8_t* p_data, 197911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t max_len, uint16_t* p_len); 1988372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 1998372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 200ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 201ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_GetRxQueueCnt 202ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 203ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description This function return number of bytes on the rx queue. 204ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 205ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters: handle - Handle returned in the GAP_ConnOpen 206ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * p_rx_queue_count - Pointer to return queue count in. 207ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 208ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 209ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 210911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern int GAP_GetRxQueueCnt(uint16_t handle, uint32_t* p_rx_queue_count); 2118372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 2128372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 213ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 214ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnBTRead 215ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 216ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description GKI buffer aware applications will call this function after 217ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * receiving an GAP_EVT_RXDATA event to process the incoming 218ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * data buffer. 219ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 220ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns BT_PASS - data read 221ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_ERR_BAD_HANDLE - invalid handle 222ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_NO_DATA_AVAIL - no data available 223ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 224ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 225911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t GAP_ConnBTRead(uint16_t gap_handle, BT_HDR** pp_buf); 2268372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 2278372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 228ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 229ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnWriteData 230ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 231ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description GKI buffer unaware application will call this function 2329ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * to send data to the connection. A data copy is made into a 2339ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * GKI buffer. 234ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 235ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns BT_PASS - data read 236ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_ERR_BAD_HANDLE - invalid handle 237ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_ERR_BAD_STATE - connection not established 238ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_CONGESTION - system is congested 239ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 240ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 241911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t GAP_ConnWriteData(uint16_t gap_handle, uint8_t* p_data, 242911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t max_len, uint16_t* p_len); 2438372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 2448372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 245ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 246ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnReconfig 247ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 2489ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description Applications can call this function to reconfigure the 2499ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * connection. 250ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 251ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns BT_PASS - config process started 252ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_ERR_BAD_HANDLE - invalid handle 253ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 254ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 255911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t GAP_ConnReconfig(uint16_t gap_handle, tL2CAP_CFG_INFO* p_cfg); 2568372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 2578372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 258ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 259ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnSetIdleTimeout 260ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 261ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description Higher layers call this function to set the idle timeout for 2629ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * a connection, or for all future connections. The "idle 2639ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * timeout" is the amount of time that a connection can remain 2649ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * up with no L2CAP channels on it. A timeout of zero means 2659ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * that the connection will be torn down immediately when the 2669ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * last channel is removed. A timeout of 0xFFFF means no 2679ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * timeout. Values are in seconds. 268ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 269ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns BT_PASS - config process started 270ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_ERR_BAD_HANDLE - invalid handle 271ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 272ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 273911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t GAP_ConnSetIdleTimeout(uint16_t gap_handle, uint16_t timeout); 2748372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 2758372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 276ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 277ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnGetRemoteAddr 278ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 279ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description This function is called to get the remote BD address 280ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * of a connection. 281ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 282ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns BT_PASS - closed OK 283ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * GAP_ERR_BAD_HANDLE - invalid handle 284ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 285ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 2869e030fde05352ec4385d7baf6cc2af89e95e039cJakub Pawlowskiextern const RawAddress* GAP_ConnGetRemoteAddr(uint16_t gap_handle); 2878372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 2888372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 289ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 290ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnGetRemMtuSize 291ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 292ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description Returns the remote device's MTU size. 293ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 2949ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Returns uint16_t - maximum size buffer that can be transmitted to 2959ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * the peer 296ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 297ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 298911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t GAP_ConnGetRemMtuSize(uint16_t gap_handle); 2998372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 3008372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz/******************************************************************************* 301ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 302ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_ConnGetL2CAPCid 303ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 304ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description Returns the L2CAP channel id 305ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 306ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters: handle - Handle of the connection 307ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 308ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns uint16_t - The L2CAP channel id 309ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 0, if error 310ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 311ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 312911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t GAP_ConnGetL2CAPCid(uint16_t gap_handle); 3138372aa5fa535ee4f09c09981b6125b54ace31fe2Kim Schulz 314ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 315ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 316ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_Init 317ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 318ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description Initializes the control blocks used by GAP. 319ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * This routine should not be called except once per 320ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * stack invocation. 321ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 322ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns Nothing 323ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 324ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 32524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void GAP_Init(void); 326ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 327ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 328ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 329ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_BleAttrDBUpdate 330ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 331ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description update GAP local BLE attribute database. 332ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 333ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns Nothing 334ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 335ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 336911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void GAP_BleAttrDBUpdate(uint16_t attr_uuid, 337911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tGAP_BLE_ATTR_VALUE* p_value); 338ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 339ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 340ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 341ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_BleReadPeerPrefConnParams 342ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 343ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description Start a process to read a connected peripheral's preferred 344ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * connection parameters 345ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 346ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns true if read started, else false if GAP is busy 347ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 348ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 3499e030fde05352ec4385d7baf6cc2af89e95e039cJakub Pawlowskiextern bool GAP_BleReadPeerPrefConnParams(const RawAddress& peer_bda); 350ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 351ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 352ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 353ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_BleReadPeerDevName 354ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 3559ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description Start a process to read a connected peripheral's device 3569ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * name. 357ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 358ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns true if request accepted 359ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 360ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 3619e030fde05352ec4385d7baf6cc2af89e95e039cJakub Pawlowskiextern bool GAP_BleReadPeerDevName(const RawAddress& peer_bda, 362911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tGAP_BLE_CMPL_CBACK* p_cback); 363ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 364ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 365ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 366ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_BleReadPeerAddressResolutionCap 367ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 368ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description Start a process to read peer address resolution capability 369ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 370ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns true if request accepted 371ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 372ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 3739e030fde05352ec4385d7baf6cc2af89e95e039cJakub Pawlowskiextern bool GAP_BleReadPeerAddressResolutionCap(const RawAddress& peer_bda, 374911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson tGAP_BLE_CMPL_CBACK* p_cback); 375ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 376ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 377ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 378ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function GAP_BleCancelReadPeerDevName 379ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 380ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description Cancel reading a peripheral's device name. 381ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 382ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns true if request accepted 383ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * 384ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 3859e030fde05352ec4385d7baf6cc2af89e95e039cJakub Pawlowskiextern bool GAP_BleCancelReadPeerDevName(const RawAddress& peer_bda); 386444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 387911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#endif /* GAP_API_H */ 388