/****************************************************************************** * * Copyright (C) 2009-2013 Broadcom Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************/ #ifndef GAP_API_H #define GAP_API_H #include "profiles_api.h" #include "btm_api.h" #include "l2c_api.h" /***************************************************************************** ** Constants *****************************************************************************/ /*** GAP Error and Status Codes ***/ #define GAP_UNSUPPORTED (GAP_ERR_GRP + 0x01) /* Unsupported call */ #define GAP_EOINQDB (GAP_ERR_GRP + 0x02) /* End of inquiry database marker */ #define GAP_ERR_BUSY (GAP_ERR_GRP + 0x03) /* The requested function was busy */ #define GAP_ERR_NO_CTRL_BLK (GAP_ERR_GRP + 0x04) /* No control blocks available */ #define GAP_ERR_STARTING_CMD (GAP_ERR_GRP + 0x05) /* Error occurred while initiating the command */ #define GAP_NO_BDADDR_REC (GAP_ERR_GRP + 0x06) /* No Inquiry DB record for BD_ADDR */ #define GAP_ERR_ILL_MODE (GAP_ERR_GRP + 0x07) /* An illegal mode parameter was detected */ #define GAP_ERR_ILL_INQ_TIME (GAP_ERR_GRP + 0x08) /* An illegal time parameter was detected */ #define GAP_ERR_ILL_PARM (GAP_ERR_GRP + 0x09) /* An illegal parameter was detected */ #define GAP_ERR_REM_NAME (GAP_ERR_GRP + 0x0a) /* Error starting the remote device name request */ #define GAP_CMD_INITIATED (GAP_ERR_GRP + 0x0b) /* The GAP command was started (result pending) */ #define GAP_DEVICE_NOT_UP (GAP_ERR_GRP + 0x0c) /* The device was not up; the request was not executed */ #define GAP_BAD_BD_ADDR (GAP_ERR_GRP + 0x0d) /* The bd addr passed in was not found or invalid */ #define GAP_ERR_BAD_HANDLE (GAP_ERR_GRP + 0x0e) /* Bad GAP handle */ #define GAP_ERR_BUF_OFFSET (GAP_ERR_GRP + 0x0f) /* Buffer offset invalid */ #define GAP_ERR_BAD_STATE (GAP_ERR_GRP + 0x10) /* Connection is in invalid state */ #define GAP_NO_DATA_AVAIL (GAP_ERR_GRP + 0x11) /* No data available */ #define GAP_ERR_CONGESTED (GAP_ERR_GRP + 0x12) /* BT stack is congested */ #define GAP_ERR_SECURITY (GAP_ERR_GRP + 0x13) /* Security failed */ #define GAP_ERR_PROCESSING (GAP_ERR_GRP + 0x14) /* General error processing BTM request */ #define GAP_ERR_TIMEOUT (GAP_ERR_GRP + 0x15) /* Timeout occurred while processing cmd */ /** GAP Events - definitions of GAP return events ***/ #define GAP_EVT_INQUIRY_RESULTS 0x0001 #define GAP_EVT_INQUIRY_COMPLETE 0x0002 #define GAP_EVT_DISCOVERY_COMPLETE 0x0003 #define GAP_EVT_REM_NAME_COMPLETE 0x0004 #define GAP_EVT_FIND_ADDR_COMPLETE 0x0005 #define GAP_EVT_CONN_OPENED 0x0100 #define GAP_EVT_CONN_CLOSED 0x0101 #define GAP_EVT_CONN_DATA_AVAIL 0x0102 #define GAP_EVT_CONN_CONGESTED 0x0103 #define GAP_EVT_CONN_UNCONGESTED 0x0104 /* Values for 'chan_mode_mask' field */ /* GAP_ConnOpen() - optional channels to negotiate */ #define GAP_FCR_CHAN_OPT_BASIC L2CAP_FCR_CHAN_OPT_BASIC #define GAP_FCR_CHAN_OPT_ERTM L2CAP_FCR_CHAN_OPT_ERTM #define GAP_FCR_CHAN_OPT_STREAM L2CAP_FCR_CHAN_OPT_STREAM /*** discovery of devices ***/ #define GAP_INQUIRY_NONE BTM_INQUIRY_NONE #define GAP_GENERAL_INQUIRY BTM_GENERAL_INQUIRY #define GAP_LIMITED_INQUIRY BTM_LIMITED_INQUIRY #if BLE_INCLUDED == TRUE #define GAP_BLE_INQUIRY_NONE BTM_BLE_INQUIRY_NONE #define GAP_BLE_GENERAL_INQUIRY BTM_BLE_GENERAL_INQUIRY #define GAP_BLE_LIMITED_INQUIRY BTM_BLE_LIMITED_INQUIRY #endif /*** discoverable modes ***/ #define GAP_NON_DISCOVERABLE BTM_NON_DISCOVERABLE #define GAP_LIMITED_DISCOVERABLE BTM_LIMITED_DISCOVERABLE #define GAP_GENERAL_DISCOVERABLE BTM_GENERAL_DISCOVERABLE /*** Inquiry Filter Condition types (The values are defined in btm_api.h) ***/ #define GAP_CLR_INQUIRY_FILTER BTM_CLR_INQUIRY_FILTER /* Inquiry Filtering is turned off */ #define GAP_FILTER_COND_DEVICE_CLASS BTM_FILTER_COND_DEVICE_CLASS /* Filter on device class */ #define GAP_FILTER_COND_BD_ADDR BTM_FILTER_COND_BD_ADDR /* Filter on device addr */ /*** connectability ***/ #define GAP_NON_CONNECTABLE BTM_NON_CONNECTABLE #define GAP_CONNECTABLE BTM_CONNECTABLE /*** security features ***/ #define GAP_DISALLOW_PAIRING 0 #define GAP_ALLOW_PAIRING 1 /*** class of device settings ***/ #define GAP_SET_COD_MAJOR_MINOR 0x01 #define GAP_SET_COD_SERVICE_CLASS 0x02 /* only set the bits in the input */ #define GAP_CLR_COD_SERVICE_CLASS 0x04 #define GAP_SET_COD_ALL 0x08 /* take service class as the input (may clear some set bits!!) */ #define GAP_INIT_COD 0x0a /*** used in connection variables and functions ***/ #define GAP_INVALID_HANDLE 0xFFFF /* This is used to change the criteria for AMP */ #define GAP_PROTOCOL_ID (UUID_PROTOCOL_UDP) /* slave preferred parameter, minimum connection interval */ #ifndef GAP_SL_CONN_INT_MIN #define GAP_SL_CONN_INT_MIN 6 #endif /* slave preferred parameter, maximum connection interval */ #ifndef GAP_SL_CONN_INT_MAX #define GAP_SL_CONN_INT_MAX 20 #endif /* slave preferred parameter */ #ifndef GAP_SL_LATENCY #define GAP_SL_LATENCY 2 #endif #ifndef GAP_BLE_PRIVACY_RECONN_ADDR_PERM #define GAP_BLE_PRIVACY_RECONN_ADDR_PERM (GATT_PERM_READ|GATT_PERM_WRITE) #endif #ifndef GAP_PREFER_CONN_INT_MAX #define GAP_PREFER_CONN_INT_MAX BTM_BLE_CONN_INT_MIN #endif #ifndef GAP_PREFER_CONN_INT_MIN #define GAP_PREFER_CONN_INT_MIN BTM_BLE_CONN_INT_MIN #endif #ifndef GAP_PREFER_CONN_LATENCY #define GAP_PREFER_CONN_LATENCY 0 #endif #ifndef GAP_PREFER_CONN_SP_TOUT #define GAP_PREFER_CONN_SP_TOUT 2000 #endif #if BLE_INCLUDED == TRUE #ifndef GAP_TRANSPORT_SUPPORTED #define GAP_TRANSPORT_SUPPORTED GATT_TRANSPORT_LE_BR_EDR #endif #endif /***************************************************************************** ** Type Definitions *****************************************************************************/ /* ** Callback function for connection services */ typedef void (tGAP_CONN_CALLBACK) (UINT16 gap_handle, UINT16 event); /* ** Define the callback function prototypes. Parameters are specific ** to each event and are described below */ typedef void (tGAP_CALLBACK) (UINT16 event, void *p_data); typedef tBTM_REMOTE_DEV_NAME tGAP_REMOTE_DEV_NAME; /* see btm_api.h */ typedef tBTM_INQ_PARMS tGAP_INQ_PARMS; /* see btm_api.h */ typedef tBTM_INQ_RESULTS tGAP_INQ_RESULTS; /* see btm_api.h */ /* Inquiry results structure */ typedef struct { UINT16 status; UINT8 num_results; } tGAP_INQ_CMPL; /* Definition of the GAP_FindAddrByName results structure */ typedef struct { UINT16 status; BD_ADDR bd_addr; tBTM_BD_NAME devname; } tGAP_FINDADDR_RESULTS; /** for GAP_SetDeviceClass() **/ /* Define Class of Device related values * * >>> changes to this type need to also be made to tHSP_COD in hsp2_int.h */ typedef struct { UINT8 minor; UINT8 major; UINT16 service; } tGAP_COD; /*** Constants and functions for device features ***/ typedef struct { UINT8 lmp_version; UINT16 mfc_name; UINT16 lmp_subversion; } tGAP_LMP_VERSION; typedef struct { UINT8 lmp_features[8]; } tGAP_LMP_FEATURES; typedef struct { UINT16 int_min; UINT16 int_max; UINT16 latency; UINT16 sp_tout; }tGAP_BLE_PREF_PARAM; typedef union { tGAP_BLE_PREF_PARAM conn_param; BD_ADDR reconn_bda; UINT16 icon; UINT8 *p_dev_name; UINT8 privacy; }tGAP_BLE_ATTR_VALUE; typedef void (tGAP_BLE_DEV_NAME_CBACK)(BOOLEAN status, BD_ADDR addr, UINT16 length, char *p_name); typedef void (tGAP_BLE_RECONN_ADDR_CBACK)(BOOLEAN status, BD_ADDR addr, BD_ADDR reconn_bda); /***************************************************************************** ** External Function Declarations *****************************************************************************/ #ifdef __cplusplus extern "C" { #endif /******************************************************************************* ** ** Function GAP_SetDiscoverableMode ** ** Description This function is called to allow or disallow a service to ** discovered (Inquiry Scans). ** ** Returns BT_PASS (0) if successful, ** GAP_ERR_ILL_PARM if a bad parameter is detected, ** GAP_DEVICE_NOT_UP if the device is not active, ** GAP_ERR_PROCESSING if not enough resources to carry out request ** *******************************************************************************/ GAP_API extern UINT16 GAP_SetDiscoverableMode (UINT16 mode, UINT16 duration, UINT16 interval); /******************************************************************************* ** ** Function GAP_ReadDiscoverableMode ** ** Description This function is called to retrieve the current discoverable ** mode for the local device. ** ** Returns GAP_NON_DISCOVERABLE, GAP_LIMITED_DISCOVERABLE, or ** GAP_GENERAL_DISCOVERABLE ** *******************************************************************************/ GAP_API extern UINT16 GAP_ReadDiscoverableMode (UINT16 *duration, UINT16 *interval); /******************************************************************************* ** ** Function GAP_StartInquiry ** ** Description This function initiates a single inquiry. ** ** Returns BT_PASS (0) if successful, ** GAP_ERR_ILL_MODE if a bad mode parameter was passed ** GAP_ERR_ILL_INQ_TIME if a bad interval or duration was passed ** GAP_ERR_NO_CTRL_BLK if out of control blocks ** GAP_ERR_ILL_PARM if a bad parameter was detected in BTM ** GAP_ERR_BUSY if the device already has an iquiry active ** GAP_DEVICE_NOT_UP if the device is not initialized yet ** GAP_ERR_PROCESSING if any other BTM error was returned ** *******************************************************************************/ GAP_API extern UINT16 GAP_StartInquiry (tGAP_INQ_PARMS *p_inq_parms, tGAP_CALLBACK *p_results_cb, tGAP_CALLBACK *p_cmpl_cb); /******************************************************************************* ** ** Function GAP_StartPeriodicInquiry ** ** Description This function initiates a periodic inquiry. ** ** Returns BT_PASS (0) if successful, ** GAP_ERR_ILL_MODE if a bad mode parameter was passed ** GAP_ERR_ILL_INQ_TIME if a bad interval or duration was passed ** GAP_ERR_NO_CTRL_BLK if out of control blocks ** GAP_ERR_ILL_PARM if a bad parameter was detected in BTM ** GAP_ERR_BUSY if the device already has an iquiry active ** GAP_DEVICE_NOT_UP if the device is not initialized yet ** GAP_ERR_PROCESSING if any other BTM error was returned ** *******************************************************************************/ GAP_API extern UINT16 GAP_StartPeriodicInquiry (tGAP_INQ_PARMS *p_inq_parms, UINT16 min_time, UINT16 max_time, tGAP_CALLBACK *p_results_cb); /******************************************************************************* ** ** Function GAP_CancelInquiry ** ** Description This function cancels a single inquiry (if in progress) ** ** Returns BOOLEAN (TRUE if successful, otherwise FALSE) ** *******************************************************************************/ GAP_API extern UINT16 GAP_CancelInquiry(void); /******************************************************************************* ** ** Function GAP_CancelPeriodicInquiry ** ** Description This function cancels a periodic inquiry (if in progress) ** ** Returns BOOLEAN: (TRUE if successful, otherwise FALSE) ** *******************************************************************************/ GAP_API extern UINT16 GAP_CancelPeriodicInquiry(void); /******************************************************************************* ** ** Function GAP_GetFirstInquiryResult ** ** Description This function retrieves the first valid inquiry result. ** ** Returns BT_PASS (0) if successful, or a non-zero error code ** GAP_EOINQDB if no more entries in the database. ** *******************************************************************************/ GAP_API extern UINT16 GAP_GetFirstInquiryResult(tGAP_INQ_RESULTS *p_results); /******************************************************************************* ** ** Function GAP_GetNextInquiryResult ** ** Description This function retrieves the next valid inquiry result. ** ** Returns BT_PASS (0) if successful, or a non-zero status code ** GAP_EOINQDB if no more entries in the database. ** *******************************************************************************/ GAP_API extern UINT16 GAP_GetNextInquiryResult(tGAP_INQ_RESULTS *p_results); /******************************************************************************* ** ** Function GAP_FindAddrByName ** ** Description This function is called to retrieve a device address given ** a device name. It first looks in the current local inquiry ** database for the device with the specified name. If not found ** it initiates a general inquiry. Upon completion, it retrieves ** the name for each device until a match is found or all devices ** have been checked. Note: This process can take a while to ** complete. ** ** Returns BT_PASS if the name was immediately available. (BD_ADDR is returned) ** GAP_CMD_INITIATED if an inquiry has been initiated ** *******************************************************************************/ GAP_API extern UINT16 GAP_FindAddrByName (BD_NAME devname, tGAP_INQ_PARMS *p_inq_parms, tGAP_CALLBACK *p_addr_cb, BD_ADDR bd_addr); /******************************************************************************* ** ** Function GAP_SetConnectableMode ** ** Description This function is called to allow or disallow a ** connections on the local device. ** ** Returns BT_PASS (0) if successful, ** GAP_ERR_ILL_PARM if a bad parameter is detected, ** GAP_DEVICE_NOT_UP if the device is not active, ** GAP_ERR_PROCESSING if not enough resources to carry out request ** *******************************************************************************/ GAP_API extern UINT16 GAP_SetConnectableMode (UINT16 mode, UINT16 duration, UINT16 interval); /******************************************************************************* ** ** Function GAP_ReadConnectableMode ** ** Description This function is called to retrieve the current connectability ** mode for the local device. ** ** Returns GAP_NON_CONNECTABLE, GAP_CONNECTABLE ** *******************************************************************************/ GAP_API extern UINT16 GAP_ReadConnectableMode (UINT16 *duration, UINT16 *interval); /******************************************************************************* ** ** Function GAP_SetSecurityMode ** ** Description Set security mode for the device (Service or Link level) ** ** Returns void ** *******************************************************************************/ GAP_API extern void GAP_SetSecurityMode (UINT8 sec_mode); /******************************************************************************* ** ** Function GAP_SecRegister ** ** Description Application calls this function to register for ** security services. ** ** Returns TRUE if registered OK, else FALSE ** *******************************************************************************/ GAP_API extern BOOLEAN GAP_SecRegister (tBTM_APPL_INFO *p_cb_info); /******************************************************************************* ** ** Function GAP_SetPairableMode ** ** Description This function is called to allow or disallow pairing ** on the local device. ** ** Returns BT_PASS (0) if successful, or a non-zero error code ** *******************************************************************************/ GAP_API extern UINT16 GAP_SetPairableMode (UINT16 mode, BOOLEAN connect_only_paired); /******************************************************************************* ** ** Function GAP_Bond ** ** Description This function is called to initiate bonding with peer device ** ** Returns tBTM_STATUS - BTM_CMD_STARTED of successfully initiated ** *******************************************************************************/ GAP_API extern UINT8 GAP_Bond (BD_ADDR bd_addr, UINT8 pin_len, UINT8 *p_pin, UINT32 trusted_mask[]); /******************************************************************************* ** ** Function GAP_PinRsp ** ** Description This function is called from UI after Security Manager submitted ** PIN code request. ** ** Returns void ** *******************************************************************************/ GAP_API extern void GAP_PinRsp (BD_ADDR bd_addr, UINT8 res, UINT8 pin_len, UINT8 *p_pin, UINT32 trusted_mask[]); /******************************************************************************* ** ** Function GAP_AuthorizeRsp ** ** Description This function is called from UI after Security Manager submitted ** an authorization request. ** ** Returns void ** *******************************************************************************/ GAP_API extern void GAP_AuthorizeRsp (BD_ADDR bd_addr, UINT8 res, UINT32 trusted_mask[]); /******************************************************************************* ** ** Function GAP_SetDeviceClass ** ** Description This function updates the local Device Class. ** ** Returns BT_PASS (0) if successful, ** GAP_ERR_BUSY if a discovery is already in progress ** GAP_ERR_ILL_PARM if an illegal parameter was detected ** GAP_ERR_PROCESSING if any other BTM error has been returned ** *******************************************************************************/ GAP_API extern UINT16 GAP_SetDeviceClass(tGAP_COD *p_cod, UINT8 cmd); /******************************************************************************* ** ** Function GAP_ReadDeviceClass ** ** Description This function reads the current local Device Class setting. ** ** Returns BT_PASS ** *******************************************************************************/ GAP_API extern UINT16 GAP_ReadDeviceClass(tGAP_COD *p_cod); /******************************************************************************* ** ** Function GAP_ReadLocalDeviceInfo ** ** Description This function retrieves local device information to the caller. ** NOTE: Return parameters that are set to NULL are not retrieved. ** ** Returns BT_PASS (0) if successful, or a non-zero error code ** *******************************************************************************/ GAP_API extern UINT16 GAP_ReadLocalDeviceInfo( UINT8 *name, BD_ADDR *addr, tGAP_LMP_VERSION *verinfo, tGAP_LMP_FEATURES *features); /******************************************************************************* ** ** Function GAP_GetRemoteDeviceName ** ** Description The remote name is retrieved from the specified remote device. If ** GAP_CMD_INITIATED is returned by the function, the command was ** successfully sent to the controller. The GAP_EVT_NAME_RESP event ** is passed in the callback when the remote device name has been retrieved. ** ** Returns ** GAP_CMD_INITIATED if remote search successfully initiated ** GAP_ERR_BUSY if a remote name request is already in progress, ** GAP_ERR_NO_CTRL_BLK if out of control blocks (too many commands pending) ** GAP_BAD_BD_ADDR if the device address is bad, ** GAP_DEVICE_NOT_UP if the device has not been initialized yet ** GAP_ERR_PROCESSING if any other BTM error has been returned ** *******************************************************************************/ GAP_API extern UINT16 GAP_GetRemoteDeviceName (BD_ADDR addr, tGAP_CALLBACK *callback); /*** Functions for L2CAP connection interface ***/ /******************************************************************************* ** ** Function GAP_ConnOpen ** ** Description This function is called to open a generic L2CAP connection. ** ** Returns handle of the connection if successful, else GAP_INVALID_HANDLE ** *******************************************************************************/ GAP_API extern UINT16 GAP_ConnOpen (char *p_serv_name, UINT8 service_id, BOOLEAN is_server, BD_ADDR p_rem_bda, UINT16 psm, tL2CAP_CFG_INFO *p_cfg, UINT16 security, UINT8 chan_mode_mask, tGAP_CONN_CALLBACK *p_cb); /******************************************************************************* ** ** Function GAP_ConnClose ** ** Description This function is called to close a connection. ** ** Returns BT_PASS - closed OK ** GAP_ERR_BAD_HANDLE - invalid handle ** *******************************************************************************/ GAP_API extern UINT16 GAP_ConnClose (UINT16 gap_handle); /******************************************************************************* ** ** Function GAP_ConnReadData ** ** Description GKI buffer unaware application will call this function ** after receiving GAP_EVT_RXDATA event. A data copy is made ** into the receive buffer parameter. ** ** Returns BT_PASS - data read ** GAP_ERR_BAD_HANDLE - invalid handle ** GAP_NO_DATA_AVAIL - no data available ** *******************************************************************************/ GAP_API extern UINT16 GAP_ConnReadData (UINT16 gap_handle, UINT8 *p_data, UINT16 max_len, UINT16 *p_len); /******************************************************************************* ** ** Function GAP_GetRxQueueCnt ** ** Description This function return number of bytes on the rx queue. ** ** Parameters: handle - Handle returned in the GAP_ConnOpen ** p_rx_queue_count - Pointer to return queue count in. ** ** *******************************************************************************/ GAP_API extern int GAP_GetRxQueueCnt (UINT16 handle, UINT32 *p_rx_queue_count); /******************************************************************************* ** ** Function GAP_ConnBTRead ** ** Description GKI buffer aware applications will call this function after ** receiving an GAP_EVT_RXDATA event to process the incoming ** data buffer. ** ** Returns BT_PASS - data read ** GAP_ERR_BAD_HANDLE - invalid handle ** GAP_NO_DATA_AVAIL - no data available ** *******************************************************************************/ GAP_API extern UINT16 GAP_ConnBTRead (UINT16 gap_handle, BT_HDR **pp_buf); /******************************************************************************* ** ** Function GAP_ConnBTWrite ** ** Description GKI buffer aware applications can call this function to write data ** by passing a pointer to the GKI buffer of data. ** ** Returns BT_PASS - data read ** GAP_ERR_BAD_HANDLE - invalid handle ** GAP_ERR_BAD_STATE - connection not established ** GAP_INVALID_BUF_OFFSET - buffer offset is invalid *******************************************************************************/ GAP_API extern UINT16 GAP_ConnBTWrite (UINT16 gap_handle, BT_HDR *p_buf); /******************************************************************************* ** ** Function GAP_ConnWriteData ** ** Description GKI buffer unaware application will call this function ** to send data to the connection. A data copy is made into a GKI ** buffer. ** ** Returns BT_PASS - data read ** GAP_ERR_BAD_HANDLE - invalid handle ** GAP_ERR_BAD_STATE - connection not established ** GAP_CONGESTION - system is congested ** *******************************************************************************/ GAP_API extern UINT16 GAP_ConnWriteData (UINT16 gap_handle, UINT8 *p_data, UINT16 max_len, UINT16 *p_len); /******************************************************************************* ** ** Function GAP_ConnReconfig ** ** Description Applications can call this function to reconfigure the connection. ** ** Returns BT_PASS - config process started ** GAP_ERR_BAD_HANDLE - invalid handle ** *******************************************************************************/ GAP_API extern UINT16 GAP_ConnReconfig (UINT16 gap_handle, tL2CAP_CFG_INFO *p_cfg); /******************************************************************************* ** ** Function GAP_ConnSetIdleTimeout ** ** Description Higher layers call this function to set the idle timeout for ** a connection, or for all future connections. The "idle timeout" ** is the amount of time that a connection can remain up with ** no L2CAP channels on it. A timeout of zero means that the ** connection will be torn down immediately when the last channel ** is removed. A timeout of 0xFFFF means no timeout. Values are ** in seconds. ** ** Returns BT_PASS - config process started ** GAP_ERR_BAD_HANDLE - invalid handle ** *******************************************************************************/ GAP_API extern UINT16 GAP_ConnSetIdleTimeout (UINT16 gap_handle, UINT16 timeout); /******************************************************************************* ** ** Function GAP_ConnGetRemoteAddr ** ** Description This function is called to get the remote BD address ** of a connection. ** ** Returns BT_PASS - closed OK ** GAP_ERR_BAD_HANDLE - invalid handle ** *******************************************************************************/ GAP_API extern UINT8 *GAP_ConnGetRemoteAddr (UINT16 gap_handle); /******************************************************************************* ** ** Function GAP_ConnGetRemMtuSize ** ** Description Returns the remote device's MTU size. ** ** Returns UINT16 - maximum size buffer that can be transmitted to the peer ** *******************************************************************************/ GAP_API extern UINT16 GAP_ConnGetRemMtuSize (UINT16 gap_handle); /******************************************************************************* ** ** Function GAP_ConnGetL2CAPCid ** ** Description Returns the L2CAP channel id ** ** Parameters: handle - Handle of the connection ** ** Returns UINT16 - The L2CAP channel id ** 0, if error ** *******************************************************************************/ GAP_API extern UINT16 GAP_ConnGetL2CAPCid (UINT16 gap_handle); /******************************************************************************* ** ** Function GAP_SetTraceLevel ** ** Description This function sets the trace level for GAP. If called with ** a value of 0xFF, it simply returns the current trace level. ** ** Returns The new or current trace level ** *******************************************************************************/ GAP_API extern UINT8 GAP_SetTraceLevel (UINT8 new_level); /******************************************************************************* ** ** Function GAP_Init ** ** Description Initializes the control blocks used by GAP. ** This routine should not be called except once per ** stack invocation. ** ** Returns Nothing ** *******************************************************************************/ GAP_API extern void GAP_Init(void); #if (BLE_INCLUDED == TRUE) /******************************************************************************* ** ** Function GAP_BleAttrDBUpdate ** ** Description update GAP local BLE attribute database. ** ** Returns Nothing ** *******************************************************************************/ GAP_API extern void GAP_BleAttrDBUpdate(UINT16 attr_uuid, tGAP_BLE_ATTR_VALUE *p_value); /******************************************************************************* ** ** Function GAP_BleReadPeerPrefConnParams ** ** Description Start a process to read a connected peripheral's preferred ** connection parameters ** ** Returns TRUE if read started, else FALSE if GAP is busy ** *******************************************************************************/ GAP_API extern BOOLEAN GAP_BleReadPeerPrefConnParams (BD_ADDR peer_bda); /******************************************************************************* ** ** Function GAP_BleReadPeerDevName ** ** Description Start a process to read a connected peripheral's device name. ** ** Returns TRUE if request accepted ** *******************************************************************************/ GAP_API extern BOOLEAN GAP_BleReadPeerDevName (BD_ADDR peer_bda, tGAP_BLE_DEV_NAME_CBACK *p_cback); /******************************************************************************* ** ** Function GAP_BleCancelReadPeerDevName ** ** Description Cancel reading a peripheral's device name. ** ** Returns TRUE if request accepted ** *******************************************************************************/ GAP_API extern BOOLEAN GAP_BleCancelReadPeerDevName (BD_ADDR peer_bda); /******************************************************************************* ** ** Function GAP_BleUpdateReconnectAddr ** ** Description Start a process to udpate the reconnect address if remote devive ** has privacy enabled. ** ** Returns TRUE if read started, else FALSE if GAP is busy ** *******************************************************************************/ GAP_API extern BOOLEAN GAP_BleUpdateReconnectAddr (BD_ADDR peer_bda, BD_ADDR reconn_addr, tGAP_BLE_RECONN_ADDR_CBACK *p_cback); #endif #ifdef __cplusplus } #endif #endif /* GAP_API_H */