#define BLUETOOTH_DEVICE_NAME_LENGTH_MAX 248 /**< This specifies maximum device name length */
#define BLUETOOTH_DEVICE_PASSKEY_LENGTH_MAX 50 /**< This specifies maximum length of the passkey */
#define BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX 31 /**< This specifies maximum AD data length */
+#define BLUETOOTH_EXTENDED_ADVERTISING_DATA_LENGTH_MAX 255 /**< This specifies maximum AD data length */
#define BLUETOOTH_SCAN_RESP_DATA_LENGTH_MAX 31 /**< This specifies maximum LE Scan response data length */
#define BLUETOOTH_MANUFACTURER_DATA_LENGTH_MAX 240 /**< This specifies maximum manufacturer data length */
#define BLUETOOTH_APPEARANCE_LENGTH 2 /**< This specifies bluetooth device appearance characteristic length */
* Advertising data
*/
typedef struct {
+ /* TODO : Change to BLUETOOTH_EXTENDED_ADVERTISING_DATA_LENGTH_MAX
+ * once LE EXTENDED feature is supported */
guint8 data[BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX];
} bluetooth_advertising_data_t;
*/
typedef enum {
BLUETOOTH_ALLOW_SCAN_CONN_ALL = 0x00,
- BLUETOOTH_ALLOW_CONN_ALL_SCAN_WHITE_LIST = 0x01,
- BLUETOOTH_ALLOW_SCAN_ALL_CONN_WHITE_LIST = 0x02,
- BLUETOOTH_ALLOW_SCAN_CONN_WHITE_LIST = 0x03,
+ BLUETOOTH_ALLOW_CONN_ALL_SCAN_ALLOW_LIST = 0x01,
+ BLUETOOTH_ALLOW_SCAN_ALL_CONN_ALLOW_LIST = 0x02,
+ BLUETOOTH_ALLOW_SCAN_CONN_ALLOW_LIST = 0x03,
} bluetooth_advertising_filter_policy_t;
/**
guint8 filter_policy;
guint8 type;
int tx_power_level;
+ gboolean is_legacy;
+ int primary_phy;
+ int secondary_phy;
} bluetooth_advertising_params_t;
/**
BLUETOOTH_LE_ACTIVE_SCAN
} bluetooth_le_scan_type_t;
+typedef enum {
+ BLUETOOTH_LE_SCAN_ALL = 0x00,
+ BLUETOOTH_LE_SCAN_LEGACY_ONLY,
+ BLUETOOTH_LE_SCAN_EXTENDED_ONLY
+} bluetooth_le_scan_role_t;
+
+typedef enum {
+ BLUETOOTH_ALL_PHY = 0x00,
+ BLUETOOTH_1M_PHY = 0x01,
+ BLUETOOTH_ONE_M_CODED_PHY = 0x03
+} bleutooth_le_scanning_phy_t;
+
/*
LE Connection Update
*/
BLUETOOTH_EVENT_GATT_CLIENT_SERVICE_CHANGED, /** <GATT Client service change event */
BLUETOOTH_EVENT_GATT_SERVER_ACQUIRE_WRITE, /** <GATT Characteristic/Descriptor Value change event */
BLUETOOTH_EVENT_GATT_SERVER_ACQUIRE_NOTIFY,
+ BLUETOOTH_EVENT_GATT_SERVER_PHY_READ, /**<Local Gatt Server PHY Read event */
+ BLUETOOTH_EVENT_GATT_SERVER_PHY_UPDATED, /**<Local Gatt Server PHY Updated event */
+ BLUETOOTH_EVENT_GATT_CLIENT_PHY_READ, /**<Gatt Client PHY Read event */
+ BLUETOOTH_EVENT_GATT_CLIENT_PHY_UPDATED, /**<Gatt Client PHY Updated event */
BLUETOOTH_EVENT_AG_CONNECTED = BLUETOOTH_EVENT_AUDIO_BASE, /**<AG service connected event*/
BLUETOOTH_EVENT_AG_DISCONNECTED, /**<AG service disconnected event*/
BLUETOOTH_EVENT_AG_SPEAKER_GAIN, /**<Speaker gain request event*/
} bluetooth_le_advertising_data_t;
typedef struct {
+ guint8 data[BLUETOOTH_EXTENDED_ADVERTISING_DATA_LENGTH_MAX];
+} bluetooth_extended_advertising_data_t;
+
+typedef struct{
+ gboolean use_reserved_slot;
+ gboolean is_legacy;
+} bluetooth_le_slot_and_adv_type_t;
+
+typedef struct {
+ int data_len; /**< manafacturer specific data length */
+ bluetooth_extended_advertising_data_t data; /**< manafacturer specific data */
+} bluetooth_le_extended_advertising_data_t;
+
+typedef struct {
bluetooth_device_address_t device_address; /**< device address */
- int addr_type; /**< address type*/
- int rssi; /**< received strength signal*/
+ int addr_type; /**< address type*/
+ int rssi; /**< received strength signal*/
+ int event_type;
+ int primary_phy;
+ int secondary_phy;
+ int advertising_sid;
+ int tx_power;
+ int periodic_adv_int;
+ bool is_extended;
+ /* TODO : Replace bluetooth_le_advertising_data_t adv_ind_data with
+ * bluetooth_le_extended_advertising_data_t once
+ * LE_EXTENDED feature is supported */
bluetooth_le_advertising_data_t adv_ind_data;
bluetooth_le_advertising_data_t scan_resp_data;
} bluetooth_le_device_info_t;
unsigned int status; /** < status of the MTU exchange */
} bluetooth_le_att_mtu_info_t;
+typedef struct {
+ bluetooth_device_address_t device_address; /**< device address */
+ int tx_phy; /** < tx_phy set for the gatt connection */
+ int rx_phy; /** < rx_phy set for the gatt connection */
+ int status; /** < status of the PHY */
+} bluetooth_le_phy_info_t;
+
/**
* structure to hold the paired device information
*/
BLUETOOTH_DPM_POLICY_ALLOW,
BLUETOOTH_DPM_POLICY_DEVICE_RESTRICTION,
BLUETOOTH_DPM_POLICY_UUID_RESTRICTION,
- BLUETOOTH_DPM_POLICY_DEVICES_WHITELIST,
- BLUETOOTH_DPM_POLICY_DEVICES_BLACKLIST,
- BLUETOOTH_DPM_POLICY_UUIDS_WHITELIST,
- BLUETOOTH_DPM_POLICY_UUIDS_BLACKLIST,
+ BLUETOOTH_DPM_POLICY_DEVICES_ALLOWLIST,
+ BLUETOOTH_DPM_POLICY_DEVICES_BLOCKLIST,
+ BLUETOOTH_DPM_POLICY_UUIDS_ALLOWLIST,
+ BLUETOOTH_DPM_POLICY_UUIDS_BLOCKLIST,
BLUETOOTH_DPM_POLICY_ALLOW_OUTGOING_CALL,
BLUETOOTH_DPM_POLICY_PAIRING_STATE,
BLUETOOTH_DPM_POLICY_DESKTOP_CONNECTIVITY_STATE,
*
* @remark None
*/
-int bluetooth_set_advertising_data(int handle, const bluetooth_advertising_data_t *value, int length);
+int bluetooth_set_advertising_data(int handle, const bluetooth_advertising_data_t *value, int length, bool is_legacy);
/**
* @fn int bluetooth_check_privilege_advertising_parameter(void);
int bluetooth_set_scan_type(bluetooth_le_scan_type_t scan_type);
/**
+ * @fn intbluetooth_set_scan_phy(bleutooth_le_scanning_phy_t phy);
+ *ss
+ * @brief Set scan phy
+ *
+ * This function is used to set LE scan phy
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal IPC error \n
+ *
+ * @exception None
+ * @param[in] phy - LE scanning PHY
+ *
+ * @remark None
+ */
+int bluetooth_set_le_scan_phy(bleutooth_le_scanning_phy_t phy);
+
+/**
+ * @fn intbluetooth_set_scan_phy(bluetooth_le_scan_role_t role);
+ *ss
+ * @brief Set scan role
+ *
+ * This function is used to set LE scan role
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal IPC error \n
+ *
+ * @exception None
+ * @param[in] role - LE scanning role
+ *
+ * @remark None
+ */
+int bluetooth_set_le_scan_role(bluetooth_le_scan_role_t role);
+
+/**
* @fn int bluetooth_is_advertising(void)
* @brief Check for the advertising is in-progress or not.
*
int bluetooth_is_advertising(gboolean *is_advertising);
/**
- * @fn int bluetooth_add_white_list(bluetooth_device_address_t *address, bluetooth_device_address_type_t address_type)
- * @brief Add LE device to white list
+ * @fn int bluetooth_add_allow_list(bluetooth_device_address_t *address, bluetooth_device_address_type_t address_type)
+ * @brief Add LE device to allow list
*
- * This API is used to add LE device to white list
+ * This API is used to add LE device to allow list
* Before calling this API, make sure that the adapter is enabled. There is no callback event for
* this API.
*
* @remark None
* @see bluetooth_set_custom_advertising
*/
-int bluetooth_add_white_list(bluetooth_device_address_t *address, bluetooth_device_address_type_t address_type);
+int bluetooth_add_allow_list(bluetooth_device_address_t *address, bluetooth_device_address_type_t address_type);
/**
- * @fn int bluetooth_remove_white_list(bluetooth_device_address_t *address, bluetooth_device_address_type_t address_type)
- * @brief Remove LE device from white list
+ * @fn int bluetooth_remove_allow_list(bluetooth_device_address_t *address, bluetooth_device_address_type_t address_type)
+ * @brief Remove LE device from allow list
*
- * This API is used to remove LE device from white list
+ * This API is used to remove LE device from allow list
* Before calling this API, make sure that the adapter is enabled. There is no callback event for
* this API.
*
* @remark None
* @see bluetooth_set_custom_advertising
*/
-int bluetooth_remove_white_list(bluetooth_device_address_t *address, bluetooth_device_address_type_t address_type);
+int bluetooth_remove_allow_list(bluetooth_device_address_t *address, bluetooth_device_address_type_t address_type);
/**
- * @fn int bluetooth_clear_white_list(void)
- * @brief Clear white list
+ * @fn int bluetooth_clear_allow_list(void)
+ * @brief Clear allow list
*
- * This API is used to clear white list
+ * This API is used to clear allow list
* Before calling this API, make sure that the adapter is enabled. There is no callback event for
* this API.
*
* @remark None
* @see bluetooth_set_custom_advertising
*/
-int bluetooth_clear_white_list(void);
+int bluetooth_clear_allow_list(void);
/**
* @fn int bluetooth_le_conn_update(bluetooth_device_address_t *address,
unsigned int *mtu);
/**
+ * @fn int bluetooth_gatt_server_read_phy(const bluetooth_device_address_t *device_address)
+ * @brief Gets the PHY values set for a connection.
+ *
+ * This function is a asynchronous call. The updated PHYs are notified
+ * through callback event.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Parameter is not valid \n
+ *
+ * @exception None
+ * @param[in] address - remote device address value.
+ *
+ * @remark None
+ */
+int bluetooth_gatt_server_read_phy(const bluetooth_device_address_t *device_address);
+
+/**
+ * @fn int bluetooth_gatt_server_set_phy(const bluetooth_device_address_t *device_address,
+ int tx_phy, int rx_phy, int phy_options)
+ * @brief Request a change of the PHY values.
+ *
+ * This function is a asynchronous call. The updated PHYs are notified
+ * through callback event.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Parameter is not valid \n
+ *
+ * @exception None
+ * @param[in] address - remote device address value.
+ * @param[in] tx_phy The preferred sender PHY
+ * @param[in] rx_phy The preferred receiver PHY
+ * @param[in] phy_options The preferred coding to use when transmitting on LE CODED PHY
+ *
+ * @remark None
+ */
+int bluetooth_gatt_server_set_phy(const bluetooth_device_address_t *device_address,
+ int tx_phy, int rx_phy, int phy_options);
+
+/**
+ * @fn int bluetooth_gatt_client_read_phy(const bluetooth_device_address_t *device_address)
+ * @brief Gets the PHY values set for a connection.
+ *
+ * This function is a asynchronous call. The updated PHYs are notified
+ * through callback event.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Parameter is not valid \n
+ *
+ * @exception None
+ * @param[in] address - remote device address value.
+ *
+ * @remark None
+ */
+int bluetooth_gatt_client_read_phy(const bluetooth_device_address_t *device_address);
+
+/**
+ * @fn int bluetooth_gatt_client_set_phy(const bluetooth_device_address_t *device_address,
+ int tx_phy, int rx_phy, int phy_options)
+ * @brief Request a change of the PHY values.
+ *
+ * This function is a asynchronous call. The updated PHYs are notified
+ * through callback event.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Parameter is not valid \n
+ *
+ * @exception None
+ * @param[in] address - remote device address value.
+ * @param[in] tx_phy The preferred sender PHY
+ * @param[in] rx_phy The preferred receiver PHY
+ * @param[in] phy_options The preferred coding to use when transmitting on LE CODED PHY
+ *
+ * @remark None
+ */
+int bluetooth_gatt_client_set_phy(const bluetooth_device_address_t *device_address,
+ int tx_phy, int rx_phy, int phy_options);
+
+/**
* @fn int bluetooth_get_device_ida(const bluetooth_device_address_t *device_rpa,
* bluetooth_device_address_t *id_address)
* @brief Gets the Identity address of remote device.
int bluetooth_dpm_is_uuid_restriction_active(bt_dpm_status_t *value);
/**
- * @fn int bluetooth_dpm_add_devices_to_blacklist(const bluetooth_device_address_t *device_address);
+ * @fn int bluetooth_dpm_add_devices_to_blocklist(const bluetooth_device_address_t *device_address);
*
- * @brief Adds the device to blacklist.
+ * @brief Adds the device to blocklist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_add_devices_to_blacklist(const bluetooth_device_address_t *device_address);
+int bluetooth_dpm_add_devices_to_blocklist(const bluetooth_device_address_t *device_address);
/**
- * @fn int bluetooth_dpm_add_devices_to_whitelist(const bluetooth_device_address_t *device_address);
+ * @fn int bluetooth_dpm_add_devices_to_allowlist(const bluetooth_device_address_t *device_address);
*
- * @brief Adds the device to whitelist.
+ * @brief Adds the device to allowlist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_add_devices_to_whitelist(const bluetooth_device_address_t *device_address);
+int bluetooth_dpm_add_devices_to_allowlist(const bluetooth_device_address_t *device_address);
/**
- * @fn int bluetooth_dpm_add_uuids_to_blacklist(const char *service_uuid);
+ * @fn int bluetooth_dpm_add_uuids_to_blocklist(const char *service_uuid);
*
- * @brief Adds the Service UUIDS to blacklist.
+ * @brief Adds the Service UUIDS to blocklist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_add_uuids_to_blacklist(const char *service_uuid);
+int bluetooth_dpm_add_uuids_to_blocklist(const char *service_uuid);
/**
- * @fn int bluetooth_dpm_add_uuids_to_whitelist(const char *service_uuid);
+ * @fn int bluetooth_dpm_add_uuids_to_allowlist(const char *service_uuid);
*
- * @brief Adds the Service UUIDS to whitelist.
+ * @brief Adds the Service UUIDS to allowlist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_add_uuids_to_whitelist(const char *service_uuid);
+int bluetooth_dpm_add_uuids_to_allowlist(const char *service_uuid);
/**
- * @fn int bluetooth_dpm_clear_devices_from_blacklist();
+ * @fn int bluetooth_dpm_clear_devices_from_blocklist();
*
- * @brief Clears the devices from blacklist.
+ * @brief Clears the devices from blocklist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_clear_devices_from_blacklist(void);
+int bluetooth_dpm_clear_devices_from_blocklist(void);
/**
- * @fn int bluetooth_dpm_clear_devices_from_whitelist();
+ * @fn int bluetooth_dpm_clear_devices_from_allowlist();
*
- * @brief Clears the devices from whitelist.
+ * @brief Clears the devices from allowlist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_clear_devices_from_whitelist(void);
+int bluetooth_dpm_clear_devices_from_allowlist(void);
/**
- * @fn int bluetooth_dpm_clear_uuids_from_blacklist();
+ * @fn int bluetooth_dpm_clear_uuids_from_blocklist();
*
- * @brief Clears the uuids from blacklist.
+ * @brief Clears the uuids from blocklist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_clear_uuids_from_blacklist(void);
+int bluetooth_dpm_clear_uuids_from_blocklist(void);
/**
- * @fn int bluetooth_dpm_clear_uuids_from_whitelist();
+ * @fn int bluetooth_dpm_clear_uuids_from_allowlist();
*
- * @brief Clears the uuids from whitelist.
+ * @brief Clears the uuids from allowlist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_clear_uuids_from_whitelist(void);
+int bluetooth_dpm_clear_uuids_from_allowlist(void);
/**
- * @fn int bluetooth_dpm_get_devices_from_blacklist(bt_dpm_device_list_t *device_list);
+ * @fn int bluetooth_dpm_get_devices_from_blocklist(bt_dpm_device_list_t *device_list);
*
- * @brief reads the devices from blacklist.
+ * @brief reads the devices from blocklist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_get_devices_from_blacklist(bt_dpm_device_list_t *device_list);
+int bluetooth_dpm_get_devices_from_blocklist(bt_dpm_device_list_t *device_list);
/**
- * @fn int bluetooth_dpm_get_devices_from_whitelist(bt_dpm_device_list_t *device_list);
+ * @fn int bluetooth_dpm_get_devices_from_allowlist(bt_dpm_device_list_t *device_list);
*
- * @brief reads the devices from whitelist.
+ * @brief reads the devices from allowlist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_get_devices_from_whitelist(bt_dpm_device_list_t *device_list);
+int bluetooth_dpm_get_devices_from_allowlist(bt_dpm_device_list_t *device_list);
/**
- * @fn int bluetooth_dpm_get_uuids_from_blacklist(bt_dpm_uuids_list_t *uuid_list);
+ * @fn int bluetooth_dpm_get_uuids_from_blocklist(bt_dpm_uuids_list_t *uuid_list);
*
- * @brief reads the uuids from blacklist.
+ * @brief reads the uuids from blocklist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_get_uuids_from_blacklist(bt_dpm_uuids_list_t *uuid_list);
+int bluetooth_dpm_get_uuids_from_blocklist(bt_dpm_uuids_list_t *uuid_list);
/**
- * @fn int bluetooth_dpm_get_uuids_from_whitelist(bt_dpm_uuids_list_t *uuid_list);
+ * @fn int bluetooth_dpm_get_uuids_from_allowlist(bt_dpm_uuids_list_t *uuid_list);
*
- * @brief reads the uuids from whitelist.
+ * @brief reads the uuids from allowlist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_get_uuids_from_whitelist(bt_dpm_uuids_list_t *uuid_list);
+int bluetooth_dpm_get_uuids_from_allowlist(bt_dpm_uuids_list_t *uuid_list);
/**
- * @fn int bluetooth_dpm_remove_device_from_whitelist(const bluetooth_device_address_t *device_address);
+ * @fn int bluetooth_dpm_remove_device_from_allowlist(const bluetooth_device_address_t *device_address);
*
- * @brief Removes the device from whitelist.
+ * @brief Removes the device from allowlist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_remove_device_from_whitelist(const bluetooth_device_address_t *device_address);
+int bluetooth_dpm_remove_device_from_allowlist(const bluetooth_device_address_t *device_address);
/**
- * @fn int bluetooth_dpm_remove_device_from_blacklist(const bluetooth_device_address_t *device_address);
+ * @fn int bluetooth_dpm_remove_device_from_blocklist(const bluetooth_device_address_t *device_address);
*
- * @brief Removes the device from blacklist.
+ * @brief Removes the device from blocklist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_remove_device_from_blacklist(const bluetooth_device_address_t *device_address);
+int bluetooth_dpm_remove_device_from_blocklist(const bluetooth_device_address_t *device_address);
/**
- * @fn int bluetooth_dpm_remove_uuid_from_whitelist(const char *service_uuid);
+ * @fn int bluetooth_dpm_remove_uuid_from_allowlist(const char *service_uuid);
*
- * @brief Removes the Service UUIDS from whitelist.
+ * @brief Removes the Service UUIDS from allowlist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_remove_uuid_from_whitelist(const char *service_uuid);
+int bluetooth_dpm_remove_uuid_from_allowlist(const char *service_uuid);
/**
- * @fn int bluetooth_dpm_remove_uuid_from_blacklist(const char *service_uuid);
+ * @fn int bluetooth_dpm_remove_uuid_from_blocklist(const char *service_uuid);
+ *
*
- * @brief Removes the Service UUIDS from blacklist.
+ * @brief Removes the Service UUIDS from blocklist.
*
* This function is a synchronous call.
*
*
* @remark None
*/
-int bluetooth_dpm_remove_uuid_from_blacklist(const char *service_uuid);
+int bluetooth_dpm_remove_uuid_from_blocklist(const char *service_uuid);
/**
* @fn int bluetooth_dpm_set_allow_outgoing_call(bt_dpm_status_t value);
*
* This function is a synchronous call.
*
- * @return BLUETOOTH_ERROR_NONE - Succeess \n
+ * @return BLUETOOTH_ERROR_NONE - Success \n
* BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter (NULL buffer) \n
* BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
* BLUETOOTH_ERROR_INTERNAL - Internal error \n
*
* This function is a synchronous call.
*
- * @return BLUETOOTH_ERROR_NONE - Succeess \n
+ * @return BLUETOOTH_ERROR_NONE - Success \n
* BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter (NULL buffer) \n
* BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
* BLUETOOTH_ERROR_INTERNAL - Internal error \n
int bluetooth_is_le_coded_phy_supported(gboolean *is_supported);
/**
+ * @fn int bluetooth_is_le_extended_advertising_supported(gboolean *is_supported)
+ * @brief Check if Adapter supports LE Extended Advertising feature or not.
+ *
+ * This API is used to check whether LE Adapter supports LE Extended Advertising feature, which is introduced
+ * in BT 5.0 specification.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter (NULL buffer) \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal error \n
+ * @param[out] is_supported. This boolean variable indicates whether LE Extended Advertising is supported or not
+ *
+ * @remark None
+ */
+int bluetooth_is_le_extended_advertising_supported(gboolean *is_supported);
+
+/**
+ * @fn int bluetooth_is_le_extended_scan_supported(gboolean *is_supported)
+ * @brief Check if Adapter supports LE Extended Scan feature or not.
+ *
+ * This API is used to check whether LE Adapter supports LE Extended Scan feature, which is introduced
+ * in BT 5.0 specification.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter (NULL buffer) \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal error \n
+ * @param[out] is_supported. This boolean variable indicates whether LE Extended Scan is supported or not
+ *
+ * @remark None
+ */
+int bluetooth_is_le_extended_scan_supported(gboolean *is_supported);
+
+/**
+ * @fn int bluetooth_le_get_maximum_advertising_data_length(gint *data_length)
+ * @brief gives the maximum advertising data length supported by controller.
+ *
+ * This API is used to get the maximum advertising data length supported by controller. This feature is introduced
+ * in BT 5.0 specification.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter (NULL buffer) \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal error \n
+ * @param[out] data_length. This integer variable indicates the maximum advertising data length supported by the controller
+ *
+ * @remark None
+ */
+int bluetooth_le_get_maximum_advertising_data_length(gint *data_length);
+
+/**
* @fn int bluetooth_l2cap_le_create_socket(int psm)
* @brief Register l2cap_le socket with a specific PSM
*
*/
int bluetooth_l2cap_le_get_psm(int id, int *psm);
+/**
+ * @fn gboolean bluetooth_l2cap_le_get_max_buffer_size(int *size)
+ * @brief gives the maximum size of buffer.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
+ *
+ * @param[out] int *size
+ *
+ * @exception None
+ *
+ * @remark None
+ */
+int bluetooth_l2cap_le_get_max_buffer_size(int *size);
/**
* @}