#include <stdio.h>
#include <string.h>
#include "ble/att_db.h"
#include "ble/core.h"
#include "bluetooth.h"
#include "btstack_debug.h"
#include "btstack_util.h"
Data Structures | |
struct | att_iterator |
Macros | |
#define | __BTSTACK_FILE__ "att_db.c" |
Typedefs | |
typedef struct att_iterator | att_iterator_t |
Functions | |
void | att_clear_transaction_queue (att_connection_t *att_connection) |
static int | att_copy_value (att_iterator_t *it, uint16_t offset, uint8_t *buffer, uint16_t buffer_size, hci_con_handle_t con_handle) |
void | att_dump_attributes (void) |
static int | att_find_handle (att_iterator_t *it, uint16_t handle) |
uint16_t | att_handle_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer) |
static void | att_iterator_fetch_next (att_iterator_t *it) |
static int | att_iterator_has_next (att_iterator_t *it) |
static void | att_iterator_init (att_iterator_t *it) |
static int | att_iterator_match_uuid (att_iterator_t *it, uint8_t *uuid, uint16_t uuid_len) |
static int | att_iterator_match_uuid16 (att_iterator_t *it, uint16_t uuid) |
static void | att_notify_write_callbacks (att_connection_t *att_connection, uint16_t transaction_mode) |
uint16_t | att_prepare_handle_value_indication (att_connection_t *att_connection, uint16_t handle, uint8_t *value, uint16_t value_len, uint8_t *response_buffer) |
uint16_t | att_prepare_handle_value_notification (att_connection_t *att_connection, uint16_t handle, uint8_t *value, uint16_t value_len, uint8_t *response_buffer) |
static void | att_prepare_write_reset (void) |
static void | att_prepare_write_update_errors (uint8_t error_code, uint16_t handle) |
static att_read_callback_t | att_read_callback_for_handle (uint16_t handle) |
uint16_t | att_read_callback_handle_blob (const uint8_t *blob, uint16_t blob_size, uint16_t offset, uint8_t *buffer, uint16_t buffer_size) |
uint16_t | att_read_callback_handle_byte (uint8_t value, uint16_t offset, uint8_t *buffer, uint16_t buffer_size) |
uint16_t | att_read_callback_handle_little_endian_16 (uint16_t value, uint16_t offset, uint8_t *buffer, uint16_t buffer_size) |
uint16_t | att_read_callback_handle_little_endian_32 (uint32_t value, uint16_t offset, uint8_t *buffer, uint16_t buffer_size) |
void | att_register_service_handler (att_service_handler_t *handler) |
register read/write callbacks for specific handle range More... | |
static att_service_handler_t * | att_service_handler_for_handle (uint16_t handle) |
void | att_set_db (uint8_t const *db) |
void | att_set_read_callback (att_read_callback_t callback) |
void | att_set_write_callback (att_write_callback_t callback) |
static void | att_update_value_len (att_iterator_t *it, hci_con_handle_t con_handle) |
uint16_t | att_uuid_for_handle (uint16_t attribute_handle) |
static uint8_t | att_validate_prepared_write (att_connection_t *att_connection) |
static uint8_t | att_validate_security (att_connection_t *att_connection, att_iterator_t *it) |
static att_write_callback_t | att_write_callback_for_handle (uint16_t handle) |
uint16_t | gatt_server_get_client_configuration_handle_for_characteristic_with_uuid16 (uint16_t start_handle, uint16_t end_handle, uint16_t uuid16) |
int | gatt_server_get_get_handle_range_for_service_with_uuid16 (uint16_t uuid16, uint16_t *start_handle, uint16_t *end_handle) |
uint16_t | gatt_server_get_value_handle_for_characteristic_with_uuid16 (uint16_t start_handle, uint16_t end_handle, uint16_t uuid16) |
static uint16_t | handle_exchange_mtu_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer) |
static uint16_t | handle_execute_write_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_find_by_type_value_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_find_by_type_value_request2 (att_connection_t *att_connection, uint8_t *response_buffer, uint16_t response_buffer_size, uint16_t start_handle, uint16_t end_handle, uint16_t attribute_type, uint16_t attribute_len, uint8_t *attribute_value) |
static uint16_t | handle_find_information_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_find_information_request2 (att_connection_t *att_connection, uint8_t *response_buffer, uint16_t response_buffer_size, uint16_t start_handle, uint16_t end_handle) |
static uint16_t | handle_prepare_write_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_read_blob_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_read_blob_request2 (att_connection_t *att_connection, uint8_t *response_buffer, uint16_t response_buffer_size, uint16_t handle, uint16_t value_offset) |
static uint16_t | handle_read_by_group_type_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_read_by_group_type_request2 (att_connection_t *att_connection, uint8_t *response_buffer, uint16_t response_buffer_size, uint16_t start_handle, uint16_t end_handle, uint16_t attribute_type_len, uint8_t *attribute_type) |
static uint16_t | handle_read_by_type_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_read_by_type_request2 (att_connection_t *att_connection, uint8_t *response_buffer, uint16_t response_buffer_size, uint16_t start_handle, uint16_t end_handle, uint16_t attribute_type_len, uint8_t *attribute_type) |
static uint16_t | handle_read_multiple_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_read_multiple_request2 (att_connection_t *att_connection, uint8_t *response_buffer, uint16_t response_buffer_size, uint16_t num_handles, uint8_t *handles) |
static uint16_t | handle_read_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_read_request2 (att_connection_t *att_connection, uint8_t *response_buffer, uint16_t response_buffer_size, uint16_t handle) |
static void | handle_write_command (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static uint16_t | handle_write_request (att_connection_t *att_connection, uint8_t *request_buffer, uint16_t request_len, uint8_t *response_buffer, uint16_t response_buffer_size) |
static int | is_Bluetooth_Base_UUID (uint8_t const *uuid) |
static uint16_t | prepare_handle_value (att_connection_t *att_connection, uint16_t handle, uint8_t *value, uint16_t value_len, uint8_t *response_buffer) |
static uint16_t | setup_error (uint8_t *response_buffer, uint16_t request, uint16_t handle, uint8_t error_code) |
static uint16_t | setup_error_atribute_not_found (uint8_t *response_buffer, uint16_t request, uint16_t start_handle) |
static uint16_t | setup_error_invalid_handle (uint8_t *response_buffer, uint16_t request, uint16_t handle) |
static uint16_t | setup_error_invalid_offset (uint8_t *response_buffer, uint16_t request, uint16_t handle) |
static uint16_t | setup_error_read_not_permitted (uint8_t *response_buffer, uint16_t request, uint16_t start_handle) |
static uint16_t | setup_error_write_not_permitted (uint8_t *response_buffer, uint16_t request, uint16_t start_handle) |
static uint16_t | uuid16_from_uuid (uint16_t uuid_len, uint8_t *uuid) |
Variables | |
static uint8_t const * | att_db = NULL |
static uint8_t | att_prepare_write_error_code = 0 |
static uint16_t | att_prepare_write_error_handle = 0x0000 |
static att_read_callback_t | att_read_callback = NULL |
static att_write_callback_t | att_write_callback = NULL |
static const uint8_t | bluetooth_base_uuid [] = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } |
static btstack_linked_list_t | service_handlers |
#define __BTSTACK_FILE__ "att_db.c" |
typedef struct att_iterator att_iterator_t |
void att_clear_transaction_queue | ( | att_connection_t * | att_connection | ) |
References att_notify_write_callbacks(), and ATT_TRANSACTION_MODE_CANCEL.
Referenced by att_event_packet_handler(), and handle_execute_write_request().
|
static |
References ATT_PROPERTY_DYNAMIC, att_read_callback_for_handle(), buffer, callback, con_handle, att_iterator::flags, att_iterator::handle, att_iterator::value, and att_iterator::value_len.
Referenced by handle_read_blob_request2(), handle_read_by_type_request2(), handle_read_multiple_request2(), and handle_read_request2().
void att_dump_attributes | ( | void | ) |
References att_iterator_fetch_next(), att_iterator_has_next(), att_iterator_init(), ATT_PROPERTY_UUID128, att_iterator::flags, att_iterator::handle, little_endian_read_16(), log_info, log_info_hexdump(), reverse_128(), att_iterator::uuid, uuid128_to_str(), att_iterator::value, and att_iterator::value_len.
|
static |
References att_iterator_fetch_next(), att_iterator_has_next(), att_iterator_init(), and att_iterator::handle.
Referenced by att_uuid_for_handle(), handle_prepare_write_request(), handle_read_blob_request2(), handle_read_multiple_request2(), handle_read_request2(), handle_write_command(), and handle_write_request().
uint16_t att_handle_request | ( | att_connection_t * | att_connection, |
uint8_t * | request_buffer, | ||
uint16_t | request_len, | ||
uint8_t * | response_buffer | ||
) |
References ATT_EXCHANGE_MTU_REQUEST, ATT_EXECUTE_WRITE_REQUEST, ATT_FIND_BY_TYPE_VALUE_REQUEST, ATT_FIND_INFORMATION_REQUEST, ATT_PREPARE_WRITE_REQUEST, ATT_READ_BLOB_REQUEST, ATT_READ_BY_GROUP_TYPE_REQUEST, ATT_READ_BY_TYPE_REQUEST, ATT_READ_MULTIPLE_REQUEST, ATT_READ_REQUEST, ATT_SIGNED_WRITE_COMMAND, ATT_WRITE_COMMAND, ATT_WRITE_REQUEST, handle_exchange_mtu_request(), handle_execute_write_request(), handle_find_by_type_value_request(), handle_find_information_request(), handle_prepare_write_request(), handle_read_blob_request(), handle_read_by_group_type_request(), handle_read_by_type_request(), handle_read_multiple_request(), handle_read_request(), handle_write_command(), handle_write_request(), log_info, log_info_hexdump(), and att_connection::mtu.
Referenced by att_packet_handler(), and att_server_process_validated_request().
|
static |
References ATT_PROPERTY_UUID128, att_iterator::att_ptr, att_iterator::flags, att_iterator::handle, little_endian_read_16(), NULL, att_iterator::size, att_iterator::uuid, att_iterator::value, and att_iterator::value_len.
Referenced by att_dump_attributes(), att_find_handle(), gatt_server_get_client_configuration_handle_for_characteristic_with_uuid16(), gatt_server_get_get_handle_range_for_service_with_uuid16(), gatt_server_get_value_handle_for_characteristic_with_uuid16(), handle_find_by_type_value_request2(), handle_find_information_request2(), handle_read_by_group_type_request2(), and handle_read_by_type_request2().
|
static |
References att_iterator::att_ptr, and NULL.
Referenced by att_dump_attributes(), att_find_handle(), gatt_server_get_client_configuration_handle_for_characteristic_with_uuid16(), gatt_server_get_get_handle_range_for_service_with_uuid16(), gatt_server_get_value_handle_for_characteristic_with_uuid16(), handle_find_by_type_value_request2(), handle_find_information_request2(), handle_read_by_group_type_request2(), and handle_read_by_type_request2().
|
static |
References att_db, and att_iterator::att_ptr.
Referenced by att_dump_attributes(), att_find_handle(), gatt_server_get_client_configuration_handle_for_characteristic_with_uuid16(), gatt_server_get_get_handle_range_for_service_with_uuid16(), gatt_server_get_value_handle_for_characteristic_with_uuid16(), handle_find_by_type_value_request2(), handle_find_information_request2(), handle_read_by_group_type_request2(), and handle_read_by_type_request2().
|
static |
|
static |
References ATT_PROPERTY_UUID128, att_iterator::flags, att_iterator::handle, is_Bluetooth_Base_UUID(), little_endian_read_16(), and att_iterator::uuid.
Referenced by att_iterator_match_uuid(), gatt_server_get_client_configuration_handle_for_characteristic_with_uuid16(), gatt_server_get_get_handle_range_for_service_with_uuid16(), gatt_server_get_value_handle_for_characteristic_with_uuid16(), handle_find_by_type_value_request2(), and handle_read_by_group_type_request2().
|
static |
References att_write_callback, btstack_linked_list_iterator_has_next(), btstack_linked_list_iterator_init(), btstack_linked_list_iterator_next(), att_connection::con_handle, NULL, and att_service_handler::write_callback.
Referenced by att_clear_transaction_queue(), and handle_execute_write_request().
uint16_t att_prepare_handle_value_indication | ( | att_connection_t * | att_connection, |
uint16_t | handle, | ||
uint8_t * | value, | ||
uint16_t | value_len, | ||
uint8_t * | response_buffer | ||
) |
References ATT_HANDLE_VALUE_INDICATION, and prepare_handle_value().
Referenced by att_server_indicate().
uint16_t att_prepare_handle_value_notification | ( | att_connection_t * | att_connection, |
uint16_t | handle, | ||
uint8_t * | value, | ||
uint16_t | value_len, | ||
uint8_t * | response_buffer | ||
) |
References ATT_HANDLE_VALUE_NOTIFICATION, and prepare_handle_value().
Referenced by att_server_notify().
|
static |
References att_prepare_write_error_code, and att_prepare_write_error_handle.
Referenced by handle_execute_write_request().
|
static |
References ATT_ERROR_INVALID_ATTRIBUTE_VALUE_LENGTH, ATT_ERROR_INVALID_OFFSET, att_prepare_write_error_code, and att_prepare_write_error_handle.
Referenced by handle_prepare_write_request().
|
static |
References att_read_callback, att_service_handler_for_handle(), and att_service_handler::read_callback.
Referenced by att_copy_value(), and att_update_value_len().
uint16_t att_read_callback_handle_blob | ( | const uint8_t * | blob, |
uint16_t | blob_size, | ||
uint16_t | offset, | ||
uint8_t * | buffer, | ||
uint16_t | buffer_size | ||
) |
References btstack_min().
Referenced by att_read_callback(), att_read_callback_handle_byte(), att_read_callback_handle_little_endian_16(), and att_read_callback_handle_little_endian_32().
uint16_t att_read_callback_handle_byte | ( | uint8_t | value, |
uint16_t | offset, | ||
uint8_t * | buffer, | ||
uint16_t | buffer_size | ||
) |
References att_read_callback_handle_blob().
Referenced by att_read_callback().
uint16_t att_read_callback_handle_little_endian_16 | ( | uint16_t | value, |
uint16_t | offset, | ||
uint8_t * | buffer, | ||
uint16_t | buffer_size | ||
) |
References att_read_callback_handle_blob(), and little_endian_store_16().
Referenced by att_read_callback().
uint16_t att_read_callback_handle_little_endian_32 | ( | uint32_t | value, |
uint16_t | offset, | ||
uint8_t * | buffer, | ||
uint16_t | buffer_size | ||
) |
References att_read_callback_handle_blob(), and little_endian_store_32().
void att_register_service_handler | ( | att_service_handler_t * | handler | ) |
register read/write callbacks for specific handle range
att_service_handler_t |
References att_service_handler_for_handle(), btstack_linked_list_add(), att_service_handler::end_handle, log_error, and att_service_handler::start_handle.
Referenced by battery_service_server_init(), device_information_service_server_init(), and hids_device_init().
|
static |
References btstack_linked_list_iterator_has_next(), btstack_linked_list_iterator_init(), btstack_linked_list_iterator_next(), att_service_handler::end_handle, NULL, and att_service_handler::start_handle.
Referenced by att_read_callback_for_handle(), att_register_service_handler(), and att_write_callback_for_handle().
void att_set_db | ( | uint8_t const * | db | ) |
References att_db.
Referenced by att_server_init().
void att_set_read_callback | ( | att_read_callback_t | callback | ) |
References att_read_callback, and callback.
Referenced by att_server_init().
void att_set_write_callback | ( | att_write_callback_t | callback | ) |
References att_write_callback, and callback.
Referenced by att_server_init().
|
static |
References ATT_PROPERTY_DYNAMIC, att_read_callback_for_handle(), callback, con_handle, att_iterator::flags, att_iterator::handle, NULL, and att_iterator::value_len.
Referenced by handle_read_blob_request2(), handle_read_by_type_request2(), handle_read_multiple_request2(), and handle_read_request2().
uint16_t att_uuid_for_handle | ( | uint16_t | attribute_handle | ) |
|
static |
|
static |
References ATT_ERROR_INSUFFICIENT_AUTHENTICATION, ATT_ERROR_INSUFFICIENT_AUTHORIZATION, ATT_ERROR_INSUFFICIENT_ENCRYPTION, ATT_ERROR_INSUFFICIENT_ENCRYPTION_KEY_SIZE, ATT_PROPERTY_AUTHENTICATION_REQUIRED, ATT_PROPERTY_AUTHORIZATION_REQUIRED, att_connection::authenticated, att_connection::authorized, att_connection::encryption_key_size, and att_iterator::flags.
Referenced by handle_prepare_write_request(), handle_read_blob_request2(), handle_read_by_type_request2(), handle_read_multiple_request2(), handle_read_request2(), handle_write_command(), and handle_write_request().
|
static |
References att_service_handler_for_handle(), att_write_callback, and att_service_handler::write_callback.
Referenced by handle_prepare_write_request(), handle_write_command(), and handle_write_request().
uint16_t gatt_server_get_client_configuration_handle_for_characteristic_with_uuid16 | ( | uint16_t | start_handle, |
uint16_t | end_handle, | ||
uint16_t | uuid16 | ||
) |
References att_iterator_fetch_next(), att_iterator_has_next(), att_iterator_init(), att_iterator_match_uuid16(), GATT_CHARACTERISTICS_UUID, GATT_CLIENT_CHARACTERISTICS_CONFIGURATION, GATT_PRIMARY_SERVICE_UUID, GATT_SECONDARY_SERVICE_UUID, and att_iterator::handle.
Referenced by battery_service_server_init(), and hids_device_init().
int gatt_server_get_get_handle_range_for_service_with_uuid16 | ( | uint16_t | uuid16, |
uint16_t * | start_handle, | ||
uint16_t * | end_handle | ||
) |
References att_iterator_fetch_next(), att_iterator_has_next(), att_iterator_init(), att_iterator_match_uuid16(), GATT_PRIMARY_SERVICE_UUID, GATT_SECONDARY_SERVICE_UUID, att_iterator::handle, little_endian_store_16(), att_iterator::value, and att_iterator::value_len.
Referenced by battery_service_server_init(), device_information_service_server_init(), and hids_device_init().
uint16_t gatt_server_get_value_handle_for_characteristic_with_uuid16 | ( | uint16_t | start_handle, |
uint16_t | end_handle, | ||
uint16_t | uuid16 | ||
) |
|
static |
References ATT_EXCHANGE_MTU_RESPONSE, little_endian_read_16(), little_endian_store_16(), att_connection::max_mtu, att_connection::mtu, and UNUSED.
Referenced by att_handle_request().
|
static |
References att_clear_transaction_queue(), ATT_EXECUTE_WRITE_REQUEST, ATT_EXECUTE_WRITE_RESPONSE, att_notify_write_callbacks(), att_prepare_write_error_code, att_prepare_write_error_handle, att_prepare_write_reset(), ATT_TRANSACTION_MODE_EXECUTE, att_validate_prepared_write(), setup_error(), and UNUSED.
Referenced by att_handle_request().
|
static |
References handle_find_by_type_value_request2(), and little_endian_read_16().
Referenced by att_handle_request().
|
static |
References ATT_FIND_BY_TYPE_VALUE_REQUEST, ATT_FIND_BY_TYPE_VALUE_RESPONSE, att_iterator_fetch_next(), att_iterator_has_next(), att_iterator_init(), att_iterator_match_uuid16(), GATT_PRIMARY_SERVICE_UUID, GATT_SECONDARY_SERVICE_UUID, att_iterator::handle, little_endian_store_16(), log_info, log_info_hexdump(), setup_error_atribute_not_found(), setup_error_invalid_handle(), UNUSED, att_iterator::value, and att_iterator::value_len.
Referenced by handle_find_by_type_value_request().
|
static |
References handle_find_information_request2(), little_endian_read_16(), and UNUSED.
Referenced by att_handle_request().
|
static |
References ATT_FIND_INFORMATION_REPLY, ATT_FIND_INFORMATION_REQUEST, att_iterator_fetch_next(), att_iterator_has_next(), att_iterator_init(), ATT_PROPERTY_UUID128, att_iterator::flags, att_iterator::handle, little_endian_store_16(), log_info, setup_error_atribute_not_found(), setup_error_invalid_handle(), UNUSED, and att_iterator::uuid.
Referenced by handle_find_information_request().
|
static |
References ATT_ERROR_INVALID_ATTRIBUTE_VALUE_LENGTH, ATT_ERROR_INVALID_OFFSET, att_find_handle(), ATT_PREPARE_WRITE_REQUEST, ATT_PREPARE_WRITE_RESPONSE, att_prepare_write_update_errors(), ATT_PROPERTY_DYNAMIC, ATT_PROPERTY_WRITE, ATT_TRANSACTION_MODE_ACTIVE, att_validate_security(), att_write_callback_for_handle(), callback, att_connection::con_handle, att_iterator::flags, little_endian_read_16(), setup_error(), setup_error_invalid_handle(), setup_error_write_not_permitted(), and UNUSED.
Referenced by att_handle_request().
|
static |
References handle_read_blob_request2(), little_endian_read_16(), and UNUSED.
Referenced by att_handle_request().
|
static |
References att_copy_value(), ATT_DB_FLAGS_READ_WITHOUT_AUTHENTICATION, att_find_handle(), ATT_PROPERTY_READ, ATT_READ_BLOB_REQUEST, ATT_READ_BLOB_RESPONSE, att_update_value_len(), att_validate_security(), att_connection::con_handle, att_iterator::flags, log_info, setup_error(), setup_error_invalid_handle(), setup_error_invalid_offset(), setup_error_read_not_permitted(), and att_iterator::value_len.
Referenced by handle_read_blob_request().
|
static |
References handle_read_by_group_type_request2(), and little_endian_read_16().
Referenced by att_handle_request().
|
static |
References ATT_ERROR_UNSUPPORTED_GROUP_TYPE, att_iterator_fetch_next(), att_iterator_has_next(), att_iterator_init(), att_iterator_match_uuid(), att_iterator_match_uuid16(), ATT_READ_BY_GROUP_TYPE_REQUEST, ATT_READ_BY_GROUP_TYPE_RESPONSE, GATT_PRIMARY_SERVICE_UUID, GATT_SECONDARY_SERVICE_UUID, att_iterator::handle, little_endian_store_16(), log_info, log_info_hexdump(), NULL, setup_error(), setup_error_atribute_not_found(), setup_error_invalid_handle(), UNUSED, uuid16_from_uuid(), att_iterator::value, and att_iterator::value_len.
Referenced by handle_read_by_group_type_request().
|
static |
References handle_read_by_type_request2(), and little_endian_read_16().
Referenced by att_handle_request().
|
static |
References att_copy_value(), ATT_DB_FLAGS_READ_WITHOUT_AUTHENTICATION, att_iterator_fetch_next(), att_iterator_has_next(), att_iterator_init(), att_iterator_match_uuid(), ATT_PROPERTY_READ, ATT_READ_BY_TYPE_REQUEST, ATT_READ_BY_TYPE_RESPONSE, att_update_value_len(), att_validate_security(), att_connection::con_handle, att_iterator::flags, att_iterator::handle, little_endian_store_16(), log_info, log_info_hexdump(), setup_error(), setup_error_atribute_not_found(), setup_error_invalid_handle(), setup_error_read_not_permitted(), and att_iterator::value_len.
Referenced by handle_read_by_type_request().
|
static |
References handle_read_multiple_request2().
Referenced by att_handle_request().
|
static |
References att_copy_value(), ATT_DB_FLAGS_READ_WITHOUT_AUTHENTICATION, ATT_ERROR_READ_NOT_PERMITTED, att_find_handle(), ATT_PROPERTY_READ, ATT_READ_MULTIPLE_REQUEST, ATT_READ_MULTIPLE_RESPONSE, att_update_value_len(), att_validate_security(), att_connection::con_handle, att_iterator::flags, little_endian_read_16(), log_info, setup_error(), setup_error_invalid_handle(), and att_iterator::value_len.
Referenced by handle_read_multiple_request().
|
static |
References handle_read_request2(), little_endian_read_16(), and UNUSED.
Referenced by att_handle_request().
|
static |
References att_copy_value(), ATT_DB_FLAGS_READ_WITHOUT_AUTHENTICATION, att_find_handle(), ATT_PROPERTY_READ, ATT_READ_REQUEST, ATT_READ_RESPONSE, att_update_value_len(), att_validate_security(), att_connection::con_handle, att_iterator::flags, log_info, setup_error(), setup_error_invalid_handle(), setup_error_read_not_permitted(), and att_iterator::value_len.
Referenced by handle_read_request().
|
static |
References att_find_handle(), ATT_PROPERTY_DYNAMIC, ATT_PROPERTY_WRITE_WITHOUT_RESPONSE, ATT_TRANSACTION_MODE_NONE, att_validate_security(), att_write_callback_for_handle(), callback, att_connection::con_handle, att_iterator::flags, little_endian_read_16(), and UNUSED.
Referenced by att_handle_request().
|
static |
References att_find_handle(), ATT_PROPERTY_DYNAMIC, ATT_PROPERTY_WRITE, ATT_TRANSACTION_MODE_NONE, att_validate_security(), att_write_callback_for_handle(), ATT_WRITE_REQUEST, ATT_WRITE_RESPONSE, callback, att_connection::con_handle, att_iterator::flags, little_endian_read_16(), setup_error(), setup_error_invalid_handle(), setup_error_write_not_permitted(), and UNUSED.
Referenced by att_handle_request().
|
static |
References bluetooth_base_uuid.
Referenced by att_iterator_match_uuid(), att_iterator_match_uuid16(), and uuid16_from_uuid().
|
static |
References little_endian_store_16(), and att_connection::mtu.
Referenced by att_prepare_handle_value_indication(), and att_prepare_handle_value_notification().
|
static |
References ATT_ERROR_RESPONSE, and little_endian_store_16().
Referenced by handle_execute_write_request(), handle_prepare_write_request(), handle_read_blob_request2(), handle_read_by_group_type_request2(), handle_read_by_type_request2(), handle_read_multiple_request2(), handle_read_request2(), handle_write_request(), setup_error_atribute_not_found(), setup_error_invalid_handle(), setup_error_invalid_offset(), setup_error_read_not_permitted(), and setup_error_write_not_permitted().
|
inlinestatic |
|
inlinestatic |
References ATT_ERROR_INVALID_HANDLE, and setup_error().
Referenced by handle_find_by_type_value_request2(), handle_find_information_request2(), handle_prepare_write_request(), handle_read_blob_request2(), handle_read_by_group_type_request2(), handle_read_by_type_request2(), handle_read_multiple_request2(), handle_read_request2(), and handle_write_request().
|
inlinestatic |
References ATT_ERROR_INVALID_OFFSET, and setup_error().
Referenced by handle_read_blob_request2().
|
inlinestatic |
References ATT_ERROR_READ_NOT_PERMITTED, and setup_error().
Referenced by handle_read_blob_request2(), handle_read_by_type_request2(), and handle_read_request2().
|
inlinestatic |
References ATT_ERROR_WRITE_NOT_PERMITTED, and setup_error().
Referenced by handle_prepare_write_request(), and handle_write_request().
|
static |
References is_Bluetooth_Base_UUID(), and little_endian_read_16().
Referenced by handle_read_by_group_type_request2().
|
static |
Referenced by att_iterator_init(), and att_set_db().
|
static |
Referenced by att_prepare_write_reset(), att_prepare_write_update_errors(), and handle_execute_write_request().
|
static |
Referenced by att_prepare_write_reset(), att_prepare_write_update_errors(), and handle_execute_write_request().
|
static |
Referenced by att_read_callback_for_handle(), and att_set_read_callback().
|
static |
|
static |
Referenced by is_Bluetooth_Base_UUID().
|
static |