22#include "profiles_api.h"
31#define GAP_UNSUPPORTED (GAP_ERR_GRP + 0x01)
32#define GAP_EOINQDB (GAP_ERR_GRP + 0x02)
33#define GAP_ERR_BUSY (GAP_ERR_GRP + 0x03)
34#define GAP_ERR_NO_CTRL_BLK (GAP_ERR_GRP + 0x04)
35#define GAP_ERR_STARTING_CMD (GAP_ERR_GRP + 0x05)
36#define GAP_NO_BDADDR_REC (GAP_ERR_GRP + 0x06)
37#define GAP_ERR_ILL_MODE (GAP_ERR_GRP + 0x07)
38#define GAP_ERR_ILL_INQ_TIME (GAP_ERR_GRP + 0x08)
39#define GAP_ERR_ILL_PARM (GAP_ERR_GRP + 0x09)
40#define GAP_ERR_REM_NAME (GAP_ERR_GRP + 0x0a)
41#define GAP_CMD_INITIATED (GAP_ERR_GRP + 0x0b)
42#define GAP_DEVICE_NOT_UP (GAP_ERR_GRP + 0x0c)
43#define GAP_BAD_BD_ADDR (GAP_ERR_GRP + 0x0d)
45#define GAP_ERR_BAD_HANDLE (GAP_ERR_GRP + 0x0e)
46#define GAP_ERR_BUF_OFFSET (GAP_ERR_GRP + 0x0f)
47#define GAP_ERR_BAD_STATE (GAP_ERR_GRP + 0x10)
48#define GAP_NO_DATA_AVAIL (GAP_ERR_GRP + 0x11)
49#define GAP_ERR_CONGESTED (GAP_ERR_GRP + 0x12)
50#define GAP_ERR_SECURITY (GAP_ERR_GRP + 0x13)
52#define GAP_ERR_PROCESSING (GAP_ERR_GRP + 0x14)
53#define GAP_ERR_TIMEOUT (GAP_ERR_GRP + 0x15)
56#define GAP_EVT_INQUIRY_RESULTS 0x0001
57#define GAP_EVT_INQUIRY_COMPLETE 0x0002
58#define GAP_EVT_DISCOVERY_COMPLETE 0x0003
59#define GAP_EVT_REM_NAME_COMPLETE 0x0004
60#define GAP_EVT_FIND_ADDR_COMPLETE 0x0005
62#define GAP_EVT_CONN_OPENED 0x0100
63#define GAP_EVT_CONN_CLOSED 0x0101
64#define GAP_EVT_CONN_DATA_AVAIL 0x0102
65#define GAP_EVT_CONN_CONGESTED 0x0103
66#define GAP_EVT_CONN_UNCONGESTED 0x0104
70#define GAP_FCR_CHAN_OPT_BASIC L2CAP_FCR_CHAN_OPT_BASIC
71#define GAP_FCR_CHAN_OPT_ERTM L2CAP_FCR_CHAN_OPT_ERTM
72#define GAP_FCR_CHAN_OPT_STREAM L2CAP_FCR_CHAN_OPT_STREAM
75#define GAP_INQUIRY_NONE BTM_INQUIRY_NONE
76#define GAP_GENERAL_INQUIRY BTM_GENERAL_INQUIRY
77#define GAP_LIMITED_INQUIRY BTM_LIMITED_INQUIRY
79#if BLE_INCLUDED == TRUE
80#define GAP_BLE_INQUIRY_NONE BTM_BLE_INQUIRY_NONE
81#define GAP_BLE_GENERAL_INQUIRY BTM_BLE_GENERAL_INQUIRY
82#define GAP_BLE_LIMITED_INQUIRY BTM_BLE_LIMITED_INQUIRY
86#define GAP_NON_DISCOVERABLE BTM_NON_DISCOVERABLE
87#define GAP_LIMITED_DISCOVERABLE BTM_LIMITED_DISCOVERABLE
88#define GAP_GENERAL_DISCOVERABLE BTM_GENERAL_DISCOVERABLE
91#define GAP_CLR_INQUIRY_FILTER BTM_CLR_INQUIRY_FILTER
92#define GAP_FILTER_COND_DEVICE_CLASS BTM_FILTER_COND_DEVICE_CLASS
93#define GAP_FILTER_COND_BD_ADDR BTM_FILTER_COND_BD_ADDR
96#define GAP_NON_CONNECTABLE BTM_NON_CONNECTABLE
97#define GAP_CONNECTABLE BTM_CONNECTABLE
100#define GAP_DISALLOW_PAIRING 0
101#define GAP_ALLOW_PAIRING 1
104#define GAP_SET_COD_MAJOR_MINOR 0x01
105#define GAP_SET_COD_SERVICE_CLASS 0x02
106#define GAP_CLR_COD_SERVICE_CLASS 0x04
107#define GAP_SET_COD_ALL 0x08
108#define GAP_INIT_COD 0x0a
111#define GAP_INVALID_HANDLE 0xFFFF
114#define GAP_PROTOCOL_ID (UUID_PROTOCOL_UDP)
117#ifndef GAP_SL_CONN_INT_MIN
118#define GAP_SL_CONN_INT_MIN 6
121#ifndef GAP_SL_CONN_INT_MAX
122#define GAP_SL_CONN_INT_MAX 20
125#ifndef GAP_SL_LATENCY
126#define GAP_SL_LATENCY 2
129#ifndef GAP_BLE_PRIVACY_RECONN_ADDR_PERM
130#define GAP_BLE_PRIVACY_RECONN_ADDR_PERM (GATT_PERM_READ|GATT_PERM_WRITE)
133#ifndef GAP_PREFER_CONN_INT_MAX
134#define GAP_PREFER_CONN_INT_MAX BTM_BLE_CONN_INT_MIN
137#ifndef GAP_PREFER_CONN_INT_MIN
138#define GAP_PREFER_CONN_INT_MIN BTM_BLE_CONN_INT_MIN
141#ifndef GAP_PREFER_CONN_LATENCY
142#define GAP_PREFER_CONN_LATENCY 0
145#ifndef GAP_PREFER_CONN_SP_TOUT
146#define GAP_PREFER_CONN_SP_TOUT 2000
155typedef void (tGAP_CONN_CALLBACK) (UINT16 gap_handle, UINT16 event);
161typedef void (tGAP_CALLBACK) (UINT16 event,
void *p_data);
179 tBTM_BD_NAME devname;
199 UINT16 lmp_subversion;
204 UINT8 lmp_features[8];
225typedef void (tGAP_BLE_DEV_NAME_CBACK)(BOOLEAN status, BD_ADDR addr, UINT16 length,
char *p_name);
227typedef void (tGAP_BLE_RECONN_ADDR_CBACK)(BOOLEAN status, BD_ADDR addr, BD_ADDR reconn_bda);
250GAP_API
extern UINT16 GAP_SetDiscoverableMode (UINT16 mode, UINT16 duration,
264GAP_API
extern UINT16 GAP_ReadDiscoverableMode (UINT16 *duration, UINT16 *interval);
282GAP_API
extern UINT16 GAP_StartInquiry (tGAP_INQ_PARMS *p_inq_parms,
283 tGAP_CALLBACK *p_results_cb,
284 tGAP_CALLBACK *p_cmpl_cb);
302GAP_API
extern UINT16 GAP_StartPeriodicInquiry (tGAP_INQ_PARMS *p_inq_parms,
305 tGAP_CALLBACK *p_results_cb);
316GAP_API
extern UINT16 GAP_CancelInquiry(
void);
327GAP_API
extern UINT16 GAP_CancelPeriodicInquiry(
void);
339GAP_API
extern UINT16 GAP_GetFirstInquiryResult(tGAP_INQ_RESULTS *p_results);
351GAP_API
extern UINT16 GAP_GetNextInquiryResult(tGAP_INQ_RESULTS *p_results);
369GAP_API
extern UINT16 GAP_FindAddrByName (BD_NAME devname,
370 tGAP_INQ_PARMS *p_inq_parms,
371 tGAP_CALLBACK *p_addr_cb,
387GAP_API
extern UINT16 GAP_SetConnectableMode (UINT16 mode, UINT16 duration,
400GAP_API
extern UINT16 GAP_ReadConnectableMode (UINT16 *duration, UINT16 *interval);
411GAP_API
extern void GAP_SetSecurityMode (UINT8 sec_mode);
423GAP_API
extern BOOLEAN GAP_SecRegister (
tBTM_APPL_INFO *p_cb_info);
435GAP_API
extern UINT16 GAP_SetPairableMode (UINT16 mode, BOOLEAN connect_only_paired);
451GAP_API
extern UINT8 GAP_Bond (BD_ADDR bd_addr, UINT8 pin_len,
452 UINT8 *p_pin, UINT32 trusted_mask[]);
464GAP_API
extern void GAP_PinRsp (BD_ADDR bd_addr, UINT8 res, UINT8 pin_len,
465 UINT8 *p_pin, UINT32 trusted_mask[]);
477GAP_API
extern void GAP_AuthorizeRsp (BD_ADDR bd_addr, UINT8 res,
478 UINT32 trusted_mask[]);
492GAP_API
extern UINT16 GAP_SetDeviceClass(
tGAP_COD *p_cod, UINT8 cmd);
503GAP_API
extern UINT16 GAP_ReadDeviceClass(
tGAP_COD *p_cod);
515GAP_API
extern UINT16 GAP_ReadLocalDeviceInfo( UINT8 *name, BD_ADDR *addr,
538GAP_API
extern UINT16 GAP_GetRemoteDeviceName (BD_ADDR addr, tGAP_CALLBACK *callback);
550GAP_API
extern UINT16 GAP_ConnOpen (
char *p_serv_name, UINT8 service_id, BOOLEAN is_server,
552 UINT16 security, UINT8 chan_mode_mask, tGAP_CONN_CALLBACK *p_cb);
564GAP_API
extern UINT16 GAP_ConnClose (UINT16 gap_handle);
579GAP_API
extern UINT16 GAP_ConnReadData (UINT16 gap_handle, UINT8 *p_data,
580 UINT16 max_len, UINT16 *p_len);
593GAP_API
extern int GAP_GetRxQueueCnt (UINT16 handle, UINT32 *p_rx_queue_count);
608GAP_API
extern UINT16 GAP_ConnBTRead (UINT16 gap_handle,
BT_HDR **pp_buf);
622GAP_API
extern UINT16 GAP_ConnBTWrite (UINT16 gap_handle,
BT_HDR *p_buf);
638GAP_API
extern UINT16 GAP_ConnWriteData (UINT16 gap_handle, UINT8 *p_data,
639 UINT16 max_len, UINT16 *p_len);
651GAP_API
extern UINT16 GAP_ConnReconfig (UINT16 gap_handle,
tL2CAP_CFG_INFO *p_cfg);
669GAP_API
extern UINT16 GAP_ConnSetIdleTimeout (UINT16 gap_handle, UINT16 timeout);
682GAP_API
extern UINT8 *GAP_ConnGetRemoteAddr (UINT16 gap_handle);
693GAP_API
extern UINT16 GAP_ConnGetRemMtuSize (UINT16 gap_handle);
707GAP_API
extern UINT16 GAP_ConnGetL2CAPCid (UINT16 gap_handle);
719GAP_API
extern UINT8 GAP_SetTraceLevel (UINT8 new_level);
732GAP_API
extern void GAP_Init(
void);
734#if (BLE_INCLUDED == TRUE)
757GAP_API
extern BOOLEAN GAP_BleReadPeerPrefConnParams (BD_ADDR peer_bda);
768GAP_API
extern BOOLEAN GAP_BleReadPeerDevName (BD_ADDR peer_bda, tGAP_BLE_DEV_NAME_CBACK *p_cback);
780GAP_API
extern BOOLEAN GAP_BleCancelReadPeerDevName (BD_ADDR peer_bda);
792GAP_API
extern BOOLEAN GAP_BleUpdateReconnectAddr (BD_ADDR peer_bda,
794 tGAP_BLE_RECONN_ADDR_CBACK *p_cback);